Numerous bug fixes to all platforms
Works both installed and not installed
This commit is contained in:
parent
c913f9f99a
commit
a81ea73566
68 changed files with 384 additions and 35286 deletions
|
@ -1,54 +0,0 @@
|
|||
/* MinWin Peer module
|
||||
*
|
||||
* Mixin templates to simplify peer management
|
||||
*
|
||||
* Written by Ben Hinkle and released to the public domain, as
|
||||
* explained at http://creativecommons.org/licenses/publicdomain
|
||||
* Report comments and bugs at dsource: http://www.dsource.org/projects/minwin
|
||||
*/
|
||||
|
||||
module minwin.peer;
|
||||
|
||||
version (MinWin32) {
|
||||
private import minwin.mswindows;
|
||||
alias HWND PeerForAdd;
|
||||
alias PeerForAdd WindowChildPeer;
|
||||
} else version (GTK) {
|
||||
private import minwin.gtk;
|
||||
alias GtkWidget* PeerForAdd;
|
||||
alias PeerForAdd WindowChildPeer;
|
||||
}
|
||||
|
||||
// possible values for hasPeer property
|
||||
enum {
|
||||
NO_PEER, // object has no peer
|
||||
FOREIGN_PEER, // peer is not owned by object
|
||||
OWNS_PEER // object owns peer
|
||||
}
|
||||
|
||||
template PeerMixin() {
|
||||
~this() {
|
||||
disposePeer();
|
||||
}
|
||||
int hasPeer;
|
||||
}
|
||||
|
||||
template SimplePeerMixin() {
|
||||
~this() {
|
||||
disposePeer();
|
||||
}
|
||||
int hasPeer;
|
||||
void dispose() { disposePeer(); }
|
||||
void disposePeer() {
|
||||
if (hasPeer == OWNS_PEER) {
|
||||
version (MinWin32) {
|
||||
int ok = DeleteObject(peer);
|
||||
sysAssert(ok != false, "Failed to dispose peer Font");
|
||||
} else version (GTK) {
|
||||
g_object_unref(cast(GObject*)peer);
|
||||
}
|
||||
}
|
||||
hasPeer = NO_PEER;
|
||||
}
|
||||
}
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue