radiobutton newradiobutton(char *text, rect r, actionfn fn) { radiobutton obj = newcontrol(text, r); if (obj) { obj->kind = RadioObject; setredraw(obj, draw_radio); setmousedown(obj, checkbox_mousedown); setmousemove(obj, checkbox_mousemove); setmousedrag(obj, checkbox_mousemove); setmouseup(obj, radio_mouseup); setkeydown(obj, radio_keydown); setaction(obj, fn); setbackground(obj, getbackground(parentwindow(obj))); settextfont(obj, SystemFont); show(obj); } return obj; }
checkbox newcheckbox(char *text, rect r, actionfn fn) { checkbox obj = newcontrol(text, r); if (obj) { obj->kind = CheckboxObject; setredraw(obj, draw_checkbox); setmousedown(obj, checkbox_mousedown); setmousemove(obj, checkbox_mousemove); setmousedrag(obj, checkbox_mousemove); setmouseup(obj, checkbox_mouseup); setkeydown(obj, checkbox_keydown); setaction(obj, fn); setbackground(obj, getbackground(parentwindow(obj))); settextfont(obj, SystemFont); show(obj); } return obj; }
button newbutton(char *text, rect r, actionfn fn) { button obj = newcontrol(text, r); if (obj) { obj->kind = ButtonObject; setredraw(obj, draw_button); setmousedown(obj, button_mousedown); setmousemove(obj, button_mousemove); setmousedrag(obj, button_mousemove); setmouseup(obj, button_mouseup); setkeydown(obj, button_keydown); setaction(obj, fn); setbackground(obj, LightGrey); settextfont(obj, SystemFont); show(obj); } return obj; }
button newimagecheckbox(image img, rect r, actionfn fn) { button obj; obj = newdrawing(r, draw_image_button); if (! obj) return NULL; setmousedown(obj, checkbox_mousedown); setmousemove(obj, checkbox_mousemove); setmousedrag(obj, checkbox_mousemove); setmouseup(obj, checkbox_mouseup); setkeydown(obj, checkbox_keydown); setaction(obj, fn); setbackground(obj, LightGrey); settextfont(obj, SystemFont); setimage(obj, img); show(obj); return obj; }
button newimagebutton(image img, rect r, actionfn fn) { button obj; obj = newcontrol(NULL, r); if (! obj) return NULL; setredraw(obj, draw_image_button); setmousedown(obj, button_mousedown); setmousemove(obj, button_mousemove); setmousedrag(obj, button_mousemove); setmouseup(obj, button_mouseup); setkeydown(obj, button_keydown); setaction(obj, fn); setbackground(obj, LightGrey); settextfont(obj, SystemFont); setimage(obj, img); show(obj); return obj; }
static pager pagercreate(void) { ConsoleData p; int w, h, i, x, y, w0, h0; pager c; menuitem m; p = newconsoledata((consolefn) ? consolefn : FixedFont, pagerrow, pagercol, 0, 0, guiColors, PAGER, 0, 0); if (!p) return NULL; /* if (ismdi()) { x = y = w = h = 0; } else { w = WIDTH ; h = HEIGHT; x = (devicewidth(NULL) - w) / 2; y = (deviceheight(NULL) - h) / 2 ; } */ w = WIDTH ; h = HEIGHT; /* centre a single pager, randomly place each of multiple pagers */ #ifdef USE_MDI if(ismdi()) { RECT *pR = RgetMDIsize(); w0 = pR->right; h0 = pR->bottom; } else { #endif w0 = devicewidth(NULL); h0 = deviceheight(NULL); #ifdef USE_MDI } #endif x = (w0 - w) / 2; x = x > 20 ? x:20; y = (h0 - h) / 2; y = y > 20 ? y:20; if(pagerMultiple) { #ifdef Win32 DWORD rand = GetTickCount(); #else int rand = 0; #endif int w0 = 0.4*x, h0 = 0.4*y; w0 = w0 > 20 ? w0 : 20; h0 = h0 > 20 ? h0 : 20; x += (rand % w0) - w0/2; y += ((rand/w0) % h0) - h0/2; } c = (pager) newwindow("PAGER", rect(x, y, w, h), Document | StandardWindow | Menubar | VScrollbar | HScrollbar | TrackMouse); if (!c) { freeConsoleData(p); return NULL; } setdata(c, p); if(h == 0) HEIGHT = getheight(c); if(w == 0) WIDTH = getwidth(c); COLS = WIDTH / FW - 1; ROWS = HEIGHT / FH - 1; BORDERX = (WIDTH - COLS*FW) / 2; BORDERY = (HEIGHT - ROWS*FH) / 2; gsetcursor(c, ArrowCursor); gchangescrollbar(c, VWINSB, 0, 0, ROWS, 0); gchangescrollbar(c, HWINSB, 0, COLS-1, COLS, 1); setbackground(c, guiColors[pagerbg]); #ifdef USE_MDI if (ismdi()) { int btsize = 24; rect r = rect(2, 2, btsize, btsize); control tb, bt; addto(c); MCHECK(tb = newtoolbar(btsize + 4)); gsetcursor(tb, ArrowCursor); addto(tb); MCHECK(bt = newtoolbutton(open_image, r, menueditoropen)); MCHECK(addtooltip(bt, G_("Open script"))); gsetcursor(bt, ArrowCursor); /* wants NULL as data, not the pager */ r.x += (btsize + 6) ; MCHECK(bt = newtoolbutton(copy1_image, r, pagerpaste)); MCHECK(addtooltip(bt, G_("Paste to console"))); gsetcursor(bt, ArrowCursor); setdata(bt, (void *) c); r.x += (btsize + 6) ; MCHECK(bt = newtoolbutton(copy1_image, r, pagerpastecmds)); MCHECK(addtooltip(bt, G_("Paste commands to console"))); gsetcursor(bt, ArrowCursor); setdata(bt, (void *) c); r.x += (btsize + 6) ; MCHECK(bt = newtoolbutton(print_image, r, pagerprint)); MCHECK(addtooltip(bt, G_("Print"))); gsetcursor(bt, ArrowCursor); setdata(bt, (void *) c); r.x += (btsize + 6) ; MCHECK(bt = newtoolbutton(console_image, r, pagerconsole)); MCHECK(addtooltip(bt, G_("Return focus to Console"))); gsetcursor(bt, ArrowCursor); setdata(bt, (void *) c); } #endif addto(c); MCHECK(m = gpopup(pagermenuact, PagerPopup)); setdata(m, c); setdata(p->mpopcopy = PagerPopup[0].m, c); setdata(p->mpoppaste = PagerPopup[1].m, c); setdata(p->mpoppastecmds = PagerPopup[2].m, c); setdata(PagerPopup[3].m, c); setdata(PagerPopup[5].m, c); setdata(PagerPopup[7].m, c); MCHECK(m = newmenubar(pagermenuact)); setdata(m, c); MCHECK(newmenu(G_("File"))); MCHECK(m = newmenuitem(G_("New script"), 'N', menueditornew)); MCHECK(m = newmenuitem(G_("Open script..."), 'O', menueditoropen)); MCHECK(m = newmenuitem(G_("Print..."), 'P', pagerprint)); setdata(m, c); MCHECK(m = newmenuitem(G_("Save to File..."), 'S', pagersavefile)); setdata(m, c); MCHECK(m = newmenuitem("-", 0, NULL)); MCHECK(m = newmenuitem(G_("Close"), 0, pagerclose)); setdata(m, c); MCHECK(newmenu(G_("Edit"))); MCHECK(p->mcopy = newmenuitem(G_("Copy"), 'C', pagercopy)); setdata(p->mcopy, c); MCHECK(p->mpaste = newmenuitem(G_("Paste to console"), 'V', pagerpaste)); setdata(p->mpaste, c); MCHECK(p->mpastecmds = newmenuitem(G_("Paste commands to console"), 0, pagerpastecmds)); setdata(p->mpastecmds, c); MCHECK(m = newmenuitem(G_("Select all"), 'A', pagerselectall)); setdata(m, c); if (!pagerMultiple) { MCHECK(newmenu(G_("View"))); for (i = 0; i < PAGERMAXKEPT; i++) { snprintf(pagerTitles[i], PAGERMAXTITLE+8, "&%c. ", 'A' + i); MCHECK(pagerMenus[i] = newmenuitem(&pagerTitles[i][1], 0, pagerchangeview)); setvalue(pagerMenus[i], i); } } #ifdef USE_MDI if (ismdi()) newmdimenu(); if (ismdi() && !(RguiMDI & RW_TOOLBAR)) toolbar_hide(); #endif MCHECK(BM = newbitmap(WIDTH, HEIGHT, 2)); setdata(c, p); sethit(c, console_sbf); setresize(c, consoleresize); setredraw(c, drawconsole); setdel(c, delpager); setclose(c, pagerbclose); setkeyaction(c, console_ctrlkeyin); setkeydown(c, console_normalkeyin); setmousedrag(c, console_mousedrag); setmouserepeat(c, console_mouserep); setmousedown(c, console_mousedown); return(c); }