X-Git-Url: https://repo.or.cz/w/wmaker-crm.git/blobdiff_plain/59fc927dc9f183802621138534fa6eaafe5593ba..688a56e8ab67b56550e2874d9d7423f0d435bfd9:/src/geomview.c diff --git a/src/geomview.c b/src/geomview.c dissimilarity index 96% index f1ce2581..f067ce49 100644 --- a/src/geomview.c +++ b/src/geomview.c @@ -1,155 +1,130 @@ - - - -#include - - - -typedef struct W_GeometryView { - W_Class widgetClass; - WMView *view; - - WMColor *color; - WMColor *bgColor; - - WMFont *font; - - WMSize textSize; - - union { - struct { - int x, y; - } pos; - struct { - unsigned width, height; - } size; - } data; - - unsigned showPosition:1; -} WGeometryView; - - - -static void handleEvents(XEvent *event, void *clientData); -static void paint(WGeometryView *gview); - - -WGeometryView* -WCreateGeometryView(WMScreen *scr) -{ - WGeometryView *gview; - char buffer[64]; - static W_Class widgetClass = 0; - - if (!widgetClass) { - widgetClass = W_RegisterUserWidget(); - } - - gview = malloc(sizeof(WGeometryView)); - if (!gview) { - return NULL; - } - memset(gview, 0, sizeof(WGeometryView)); - - gview->widgetClass = widgetClass; - - gview->view = W_CreateTopView(scr); - if (!gview->view) { - wfree(gview); - - return NULL; - } - gview->view->self = gview; - - gview->font = WMSystemFontOfSize(scr, 12); - if (!gview->font) { - W_DestroyView(gview->view); - wfree(gview); - - return NULL; - } - - gview->bgColor = WMCreateRGBColor(scr, 0x3333, 0x6666, 0x9999, True); - gview->color = WMWhiteColor(scr); - - WMCreateEventHandler(gview->view, ExposureMask, handleEvents, gview); - - snprintf(buffer, sizeof(buffer), "%+05i, %+05i", 0, 0); - - gview->textSize.width = WMWidthOfString(gview->font, buffer, - strlen(buffer)); - gview->textSize.height = WMFontHeight(gview->font); - - WMSetWidgetBackgroundColor(gview, gview->bgColor); - - W_ResizeView(gview->view, gview->textSize.width+8, - gview->textSize.height+6); - - return gview; -} - - -void -WSetGeometryViewShownPosition(WGeometryView *gview, int x, int y) -{ - gview->showPosition = 1; - gview->data.pos.x = x; - gview->data.pos.y = y; - - paint(gview); -} - - -void -WSetGeometryViewShownSize(WGeometryView *gview, - unsigned width, unsigned height) -{ - gview->showPosition = 0; - gview->data.size.width = width; - gview->data.size.height = height; - - paint(gview); -} - - - -static void -paint(WGeometryView *gview) -{ - char buffer[64]; - - if (gview->showPosition) { - snprintf(buffer, sizeof(buffer), "%+5i , %+5i ", - gview->data.pos.x, gview->data.pos.y); - } else { - snprintf(buffer, sizeof(buffer), "%+5i x %+5i ", - gview->data.size.width, gview->data.size.height); - } - - WMDrawImageString(W_VIEW_SCREEN(gview->view), - W_VIEW_DRAWABLE(gview->view), - gview->color, gview->bgColor, gview->font, - (W_VIEW_WIDTH(gview->view)-gview->textSize.width)/2, - (W_VIEW_HEIGHT(gview->view)-gview->textSize.height)/2, - buffer, strlen(buffer)); - - W_DrawRelief(W_VIEW_SCREEN(gview->view), W_VIEW_DRAWABLE(gview->view), - 0, 0, W_VIEW_WIDTH(gview->view), W_VIEW_HEIGHT(gview->view), - WRSimple); -} - - - -static void -handleEvents(XEvent *event, void *clientData) -{ - WGeometryView *gview = (WGeometryView*)clientData; - - switch (event->type) { - case Expose: - paint(gview); - break; - - } -} - + +#include + +typedef struct W_GeometryView { + W_Class widgetClass; + WMView *view; + + WMColor *color; + WMColor *bgColor; + + WMFont *font; + + WMSize textSize; + + union { + struct { + int x, y; + } pos; + struct { + unsigned width, height; + } size; + } data; + + unsigned showPosition:1; +} WGeometryView; + +static void handleEvents(XEvent * event, void *clientData); +static void paint(WGeometryView * gview); + +WGeometryView *WCreateGeometryView(WMScreen * scr) +{ + WGeometryView *gview; + char buffer[64]; + static W_Class widgetClass = 0; + + if (!widgetClass) { + widgetClass = W_RegisterUserWidget(); + } + + gview = malloc(sizeof(WGeometryView)); + if (!gview) { + return NULL; + } + memset(gview, 0, sizeof(WGeometryView)); + + gview->widgetClass = widgetClass; + + gview->view = W_CreateTopView(scr); + if (!gview->view) { + wfree(gview); + + return NULL; + } + gview->view->self = gview; + + gview->font = WMSystemFontOfSize(scr, 12); + if (!gview->font) { + W_DestroyView(gview->view); + wfree(gview); + + return NULL; + } + + gview->bgColor = WMCreateRGBColor(scr, 0x3333, 0x6666, 0x9999, True); + gview->color = WMWhiteColor(scr); + + WMCreateEventHandler(gview->view, ExposureMask, handleEvents, gview); + + snprintf(buffer, sizeof(buffer), "%+05i, %+05i", 0, 0); + + gview->textSize.width = WMWidthOfString(gview->font, buffer, strlen(buffer)); + gview->textSize.height = WMFontHeight(gview->font); + + WMSetWidgetBackgroundColor(gview, gview->bgColor); + + W_ResizeView(gview->view, gview->textSize.width + 8, gview->textSize.height + 6); + + return gview; +} + +void WSetGeometryViewShownPosition(WGeometryView * gview, int x, int y) +{ + gview->showPosition = 1; + gview->data.pos.x = x; + gview->data.pos.y = y; + + paint(gview); +} + +void WSetGeometryViewShownSize(WGeometryView * gview, unsigned width, unsigned height) +{ + gview->showPosition = 0; + gview->data.size.width = width; + gview->data.size.height = height; + + paint(gview); +} + +static void paint(WGeometryView * gview) +{ + char buffer[64]; + + if (gview->showPosition) { + snprintf(buffer, sizeof(buffer), "%+5i , %+5i ", gview->data.pos.x, gview->data.pos.y); + } else { + snprintf(buffer, sizeof(buffer), "%+5i x %+5i ", + gview->data.size.width, gview->data.size.height); + } + + WMDrawImageString(W_VIEW_SCREEN(gview->view), + W_VIEW_DRAWABLE(gview->view), + gview->color, gview->bgColor, gview->font, + (W_VIEW_WIDTH(gview->view) - gview->textSize.width) / 2, + (W_VIEW_HEIGHT(gview->view) - gview->textSize.height) / 2, buffer, strlen(buffer)); + + W_DrawRelief(W_VIEW_SCREEN(gview->view), W_VIEW_DRAWABLE(gview->view), + 0, 0, W_VIEW_WIDTH(gview->view), W_VIEW_HEIGHT(gview->view), WRSimple); +} + +static void handleEvents(XEvent * event, void *clientData) +{ + WGeometryView *gview = (WGeometryView *) clientData; + + switch (event->type) { + case Expose: + paint(gview); + break; + + } +}