tImproved display of GtkEntry widgets, and initial support for resizing GtkPane… | |
git clone git://src.adamsgaard.dk/vaccinewars | |
Log | |
Files | |
Refs | |
README | |
LICENSE | |
--- | |
commit 693b1b6d84b86e661a296ebc0d1aa73732a334e5 | |
parent a7dd0ce452bb13c6b9ffa1892a9691546bed9e86 | |
Author: Ben Webb <[email protected]> | |
Date: Wed, 20 Dec 2000 12:13:38 +0000 | |
Improved display of GtkEntry widgets, and initial support for resizing GtkPaned | |
widgets, in Win32 client | |
Diffstat: | |
M src/gtk.c | 92 +++++++++++++++++++++--------… | |
M src/gtk.h | 1 + | |
2 files changed, 63 insertions(+), 30 deletions(-) | |
--- | |
diff --git a/src/gtk.c b/src/gtk.c | |
t@@ -21,6 +21,8 @@ static void gtk_button_size_request(GtkWidget *widget, | |
GtkRequisition *requisition); | |
static void gtk_entry_size_request(GtkWidget *widget, | |
GtkRequisition *requisition); | |
+static void gtk_entry_set_size(GtkWidget *widget, | |
+ GtkAllocation *allocation); | |
static void gtk_text_size_request(GtkWidget *widget, | |
GtkRequisition *requisition); | |
static void gtk_button_destroy(GtkWidget *widget); | |
t@@ -284,6 +286,7 @@ static GtkClass GtkMenuClass = { | |
static GtkSignalType GtkEditableSignals[] = { | |
{ "create",gtk_marshal_VOID__VOID,gtk_editable_create }, | |
+ { "activate",gtk_marshal_VOID__VOID,NULL }, | |
{ "",NULL,NULL } | |
}; | |
t@@ -293,6 +296,7 @@ static GtkClass GtkEditableClass = { | |
static GtkSignalType GtkEntrySignals[] = { | |
{ "size_request",gtk_marshal_VOID__GPOIN,gtk_entry_size_request }, | |
+ { "set_size",gtk_marshal_VOID__GPOIN,gtk_entry_set_size }, | |
{ "realize",gtk_marshal_VOID__VOID,gtk_entry_realize }, | |
{ "",NULL,NULL } | |
}; | |
t@@ -584,38 +588,57 @@ LRESULT CALLBACK GtkPanedProc(HWND hwnd,UINT msg,UINT wP… | |
HPEN oldpen,dkpen,ltpen; | |
RECT rect; | |
HDC hDC; | |
- if (msg==WM_PAINT) { | |
- if (GetUpdateRect(hwnd,NULL,TRUE)) { | |
- BeginPaint(hwnd,&ps); | |
- GetClientRect(hwnd,&rect); | |
- hDC=ps.hdc; | |
- ltpen=CreatePen(PS_SOLID,0,(COLORREF)GetSysColor(COLOR_3DHILIGHT)); | |
- dkpen=CreatePen(PS_SOLID,0,(COLORREF)GetSysColor(COLOR_3DSHADOW)); | |
- | |
- if (rect.right > rect.bottom) { | |
- oldpen=SelectObject(hDC,ltpen); | |
- MoveToEx(hDC,rect.left,rect.top,NULL); | |
- LineTo(hDC,rect.right,rect.top); | |
- | |
- SelectObject(hDC,dkpen); | |
- MoveToEx(hDC,rect.left,rect.bottom-1,NULL); | |
- LineTo(hDC,rect.right,rect.bottom-1); | |
- } else { | |
- oldpen=SelectObject(hDC,ltpen); | |
- MoveToEx(hDC,rect.left,rect.top,NULL); | |
- LineTo(hDC,rect.left,rect.bottom); | |
+ GtkPaned *paned; | |
+ paned=GTK_PANED(GetWindowLong(hwnd,GWL_USERDATA)); | |
+ switch(msg) { | |
+ case WM_PAINT: | |
+ if (GetUpdateRect(hwnd,NULL,TRUE)) { | |
+ BeginPaint(hwnd,&ps); | |
+ GetClientRect(hwnd,&rect); | |
+ hDC=ps.hdc; | |
+ ltpen=CreatePen(PS_SOLID,0,(COLORREF)GetSysColor(COLOR_3DHILIGHT)); | |
+ dkpen=CreatePen(PS_SOLID,0,(COLORREF)GetSysColor(COLOR_3DSHADOW)); | |
+ | |
+ if (rect.right > rect.bottom) { | |
+ oldpen=SelectObject(hDC,ltpen); | |
+ MoveToEx(hDC,rect.left,rect.top,NULL); | |
+ LineTo(hDC,rect.right,rect.top); | |
+ | |
+ SelectObject(hDC,dkpen); | |
+ MoveToEx(hDC,rect.left,rect.bottom-1,NULL); | |
+ LineTo(hDC,rect.right,rect.bottom-1); | |
+ } else { | |
+ oldpen=SelectObject(hDC,ltpen); | |
+ MoveToEx(hDC,rect.left,rect.top,NULL); | |
+ LineTo(hDC,rect.left,rect.bottom); | |
+ | |
+ SelectObject(hDC,ltpen); | |
+ MoveToEx(hDC,rect.right-1,rect.top,NULL); | |
+ LineTo(hDC,rect.right-1,rect.bottom); | |
+ } | |
- SelectObject(hDC,ltpen); | |
- MoveToEx(hDC,rect.right-1,rect.top,NULL); | |
- LineTo(hDC,rect.right-1,rect.bottom); | |
+ SelectObject(hDC,oldpen); | |
+ DeleteObject(ltpen); DeleteObject(dkpen); | |
+ EndPaint(hwnd,&ps); | |
} | |
- | |
- SelectObject(hDC,oldpen); | |
- DeleteObject(ltpen); DeleteObject(dkpen); | |
- EndPaint(hwnd,&ps); | |
- } | |
- return TRUE; | |
- } else return DefWindowProc(hwnd,msg,wParam,lParam); | |
+ return TRUE; | |
+ case WM_LBUTTONDOWN: | |
+ if (!paned) break; | |
+ SetCapture(hwnd); | |
+ paned->Tracking=TRUE; | |
+ return TRUE; | |
+ case WM_MOUSEMOVE: | |
+ if (!paned||!paned->Tracking) break; | |
+ return TRUE; | |
+ case WM_LBUTTONUP: | |
+ if (!paned||!paned->Tracking) break; | |
+ ReleaseCapture(); | |
+ paned->Tracking=FALSE; | |
+ return TRUE; | |
+ default: | |
+ return DefWindowProc(hwnd,msg,wParam,lParam); | |
+ } | |
+ return FALSE; | |
} | |
LRESULT CALLBACK GtkSepProc(HWND hwnd,UINT msg,UINT wParam,LONG lParam) { | |
t@@ -2346,6 +2369,15 @@ void gtk_label_set_size(GtkWidget *widget,GtkAllocation… | |
} | |
} | |
+void gtk_entry_set_size(GtkWidget *widget,GtkAllocation *allocation) { | |
+ gint yexcess; | |
+ yexcess=allocation->height-widget->requisition.height; | |
+ if (yexcess > 0) { | |
+ allocation->y += yexcess/2; | |
+ allocation->height -= yexcess; | |
+ } | |
+} | |
+ | |
void gtk_label_destroy(GtkWidget *widget) { | |
g_free(GTK_LABEL(widget)->text); | |
} | |
diff --git a/src/gtk.h b/src/gtk.h | |
t@@ -218,6 +218,7 @@ struct _GtkPaned { | |
GtkPanedChild children[2]; | |
gint handle_size,gutter_size; | |
gint handle_pos; | |
+ gint Tracking : 1; | |
}; | |
struct _GtkVPaned { |