static void MouseButtonUp(AG_Event *event) { AG_Titlebar *tbar = AG_SELF(); AG_DriverSw *dsw = (AG_DriverSw *)WIDGET(tbar)->drv; tbar->pressed = 0; if (AGDRIVER_SINGLE(dsw)) { dsw->winop = AG_WINOP_NONE; dsw->winSelected = NULL; } }
static void MouseButtonDown(AG_Event *event) { AG_Titlebar *tbar = AG_SELF(); tbar->pressed = 1; if (AGDRIVER_SINGLE(WIDGET(tbar)->drv)) { AG_DriverSw *dsw = (AG_DriverSw *)WIDGET(tbar)->drv; agWindowToFocus = tbar->win; dsw->winSelected = tbar->win; if (!(tbar->win->flags & AG_WINDOW_NOMOVE)) dsw->winop = AG_WINOP_MOVE; } }
static void Expand(AG_Event *event) { AG_FileSelector *fs = AG_PTR(1); AG_Driver *drv = WIDGET(fs)->drv; int expand = AG_INT(2); AG_SizeReq rFileDlg; int x, y, w, h; Uint wView, hView; if (expand) { /* Expand */ fs->panel = AG_WindowNew(AG_WINDOW_MODAL|AG_WINDOW_NOTITLE); AG_WindowSetPadding(fs->panel, 0, 0, 0, 0); AG_ObjectAttach(fs->panel, fs->filedlg); if (fs->wSaved > 0) { w = fs->wSaved; h = fs->hSaved; } else { AG_WidgetSizeReq(fs->filedlg, &rFileDlg); w = rFileDlg.w + fs->panel->wBorderSide*2; h = rFileDlg.h + fs->panel->wBorderBot; } x = WIDGET(fs)->rView.x2 - w; y = WIDGET(fs)->rView.y1; if (AGDRIVER_SINGLE(drv) && AG_GetDisplaySize(drv, &wView, &hView) == 0) { if (x+w > wView) { w = wView - x; } if (y+h > hView) { h = hView - y; } } if (w < 4 || h < 4) { Collapse(fs); return; } AG_SetEvent(fs->panel, "window-modal-close", ModalClose, "%p", fs); AG_WindowSetGeometry(fs->panel, x, y, w, h); AG_WindowShow(fs->panel); } else { Collapse(fs); } }
void AG_GLViewDraw(void *obj) { AG_GLView *glv = obj; AG_Driver *drv = WIDGET(glv)->drv; GLint vpSave[4]; Uint hView; glGetIntegerv(GL_VIEWPORT, vpSave); if (glv->flags & AG_GLVIEW_INIT_MATRICES) { glv->flags &= ~(AG_GLVIEW_INIT_MATRICES); SetIdentity(glv->mProjection, GL_PROJECTION); SetIdentity(glv->mModelview, GL_MODELVIEW); SetIdentity(glv->mTexture, GL_TEXTURE); } if (glv->flags & AG_GLVIEW_RESHAPE) { glv->flags &= ~(AG_GLVIEW_RESHAPE); AG_GLViewReshape(glv); } if (AGDRIVER_SINGLE(drv)) { hView = AGDRIVER_SW(drv)->h; } else { hView = HEIGHT(WIDGET(glv)->window); } glViewport(WIDGET(glv)->rView.x1, hView - WIDGET(glv)->rView.y2, WIDTH(glv), HEIGHT(glv)); glMatrixMode(GL_TEXTURE); glPushMatrix(); glLoadMatrixf(glv->mTexture); glMatrixMode(GL_PROJECTION); glPushMatrix(); glLoadMatrixf(glv->mProjection); glMatrixMode(GL_MODELVIEW); glPushMatrix(); glLoadMatrixf(glv->mModelview); glPushAttrib(GL_TRANSFORM_BIT); glDisable(GL_CLIP_PLANE0); glDisable(GL_CLIP_PLANE1); glDisable(GL_CLIP_PLANE2); glDisable(GL_CLIP_PLANE3); if (glv->draw_ev != NULL) glv->draw_ev->handler(glv->draw_ev); glPopAttrib(); glMatrixMode(GL_MODELVIEW); glPopMatrix(); glMatrixMode(GL_TEXTURE); glPopMatrix(); glMatrixMode(GL_PROJECTION); glPopMatrix(); glViewport(vpSave[0], vpSave[1], vpSave[2], vpSave[3]); if (glv->overlay_ev != NULL) glv->overlay_ev->handler(glv->overlay_ev); }
void AG_GLViewDraw(void *obj) { AG_GLView *glv = obj; AG_Driver *drv = WIDGET(glv)->drv; Uint hView; if (glv->flags & AG_GLVIEW_BGFILL) { AG_DrawRect(glv, AG_RECT(0,0, WIDTH(glv), HEIGHT(glv)), glv->bgColor); } if (glv->underlay_ev != NULL) glv->underlay_ev->handler(glv->underlay_ev); glPushAttrib(GL_TRANSFORM_BIT | GL_VIEWPORT_BIT); if (glv->flags & AG_GLVIEW_INIT_MATRICES) { glv->flags &= ~(AG_GLVIEW_INIT_MATRICES); SetIdentity(glv->mProjection, GL_PROJECTION); SetIdentity(glv->mModelview, GL_MODELVIEW); SetIdentity(glv->mTexture, GL_TEXTURE); } if (glv->flags & AG_GLVIEW_RESHAPE) { glv->flags &= ~(AG_GLVIEW_RESHAPE); AG_GLViewReshape(glv); } if (AGDRIVER_SINGLE(drv)) { hView = AGDRIVER_SW(drv)->h; } else { hView = HEIGHT(WIDGET(glv)->window); } glViewport(WIDGET(glv)->rView.x1, hView - WIDGET(glv)->rView.y2, WIDTH(glv), HEIGHT(glv)); glMatrixMode(GL_TEXTURE); glPushMatrix(); glLoadMatrixf(glv->mTexture); glMatrixMode(GL_PROJECTION); glPushMatrix(); glLoadMatrixf(glv->mProjection); glMatrixMode(GL_MODELVIEW); glPushMatrix(); glLoadMatrixf(glv->mModelview); glDisable(GL_CLIP_PLANE0); glDisable(GL_CLIP_PLANE1); glDisable(GL_CLIP_PLANE2); glDisable(GL_CLIP_PLANE3); if (glv->draw_ev != NULL) glv->draw_ev->handler(glv->draw_ev); glMatrixMode(GL_MODELVIEW); glPopMatrix(); glMatrixMode(GL_PROJECTION); glPopMatrix(); glMatrixMode(GL_TEXTURE); glPopMatrix(); /* restore transform and viewport */ glPopAttrib(); if (glv->overlay_ev != NULL) { glPushAttrib(GL_TRANSFORM_BIT); glv->overlay_ev->handler(glv->overlay_ev); glPopAttrib(); } }