本文整理汇总了C++中IupSetAttribute函数的典型用法代码示例。如果您正苦于以下问题:C++ IupSetAttribute函数的具体用法?C++ IupSetAttribute怎么用?C++ IupSetAttribute使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了IupSetAttribute函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: main
/*
main
*/
int main(int argc, char **argv)
{
Ihandle *vboxr[MAXPLOT+1]; /* tabs containing the plots */
Ihandle *dlg, *vboxl, *hbox, *lbl1, *lbl2, *lbl3, *bt1,
*boxinfo, *boxdial1, *boxdial2, *f1, *f2;
int ii;
IupOpen(&argc, &argv); // init IUP
IupControlsOpen(); // init the addicional controls library (we use IupTabs)
IupPPlotOpen(); // init IupPPlot library
// cdInitGdiPlus();
// create plots
for (ii=0; ii<MAXPLOT; ii++)
plot[ii] = IupPPlot();
// left panel: plot control
// Y zooming
dial1 = IupDial("VERTICAL");
lbl1 = IupLabel("+");
lbl2 = IupLabel("-");
boxinfo = IupVbox(lbl1, IupFill(), lbl2, NULL);
boxdial1 = IupHbox(boxinfo, dial1, NULL);
IupSetAttribute(boxdial1, "ALIGNMENT", "ACENTER");
IupSetAttribute(boxinfo, "ALIGNMENT", "ACENTER");
IupSetAttribute(boxinfo, "SIZE", "20x52");
IupSetAttribute(boxinfo, "GAP", "2");
IupSetAttribute(boxinfo, "MARGIN", "4");
IupSetAttribute(boxinfo, "EXPAND", "YES");
IupSetAttribute(lbl1, "EXPAND", "NO");
IupSetAttribute(lbl2, "EXPAND", "NO");
IupSetAttribute(dial1, "ACTIVE", "NO");
IupSetAttribute(dial1, "SIZE", "20x52");
IupSetCallback(dial1, "BUTTON_PRESS_CB", (Icallback)dial1_btndown_cb);
IupSetCallback(dial1, "MOUSEMOVE_CB", (Icallback)dial1_btnup_cb);
IupSetCallback(dial1, "BUTTON_RELEASE_CB", (Icallback)dial1_btnup_cb);
tgg1 = IupToggle("Y Autoscale", NULL);
IupSetCallback(tgg1, "ACTION", (Icallback)tgg1_cb);
IupSetAttribute(tgg1, "VALUE", "ON");
f1 = IupFrame( IupVbox(boxdial1, tgg1, NULL) );
IupSetAttribute(f1, "TITLE", "Y Zoom");
// X zooming
dial2 = IupDial("HORIZONTAL");
lbl1 = IupLabel("-");
lbl2 = IupLabel("+");
boxinfo = IupHbox(lbl1, IupFill(), lbl2, NULL);
boxdial2 = IupVbox(dial2, boxinfo, NULL);
IupSetAttribute(boxdial2, "ALIGNMENT", "ACENTER");
IupSetAttribute(boxinfo, "ALIGNMENT", "ACENTER");
IupSetAttribute(boxinfo, "SIZE", "64x16");
IupSetAttribute(boxinfo, "GAP", "2");
IupSetAttribute(boxinfo, "MARGIN", "4");
IupSetAttribute(boxinfo, "EXPAND", "HORIZONTAL");
IupSetAttribute(lbl1, "EXPAND", "NO");
IupSetAttribute(lbl2, "EXPAND", "NO");
IupSetAttribute(dial2, "ACTIVE", "NO");
IupSetAttribute(dial2, "SIZE", "64x16");
IupSetCallback(dial2, "BUTTON_PRESS_CB", (Icallback)dial2_btndown_cb);
IupSetCallback(dial2, "MOUSEMOVE_CB", (Icallback)dial2_btnup_cb);
IupSetCallback(dial2, "BUTTON_RELEASE_CB", (Icallback)dial2_btnup_cb);
tgg2 = IupToggle("X Autoscale", NULL);
IupSetCallback(tgg2, "ACTION", (Icallback)tgg2_cb);
f2 = IupFrame( IupVbox(boxdial2, tgg2, NULL) );
IupSetAttribute(f2, "TITLE", "X Zoom");
lbl1 = IupLabel("");
IupSetAttribute(lbl1, "SEPARATOR", "HORIZONTAL");
tgg3 = IupToggle("Vertical Grid", NULL);
IupSetCallback(tgg3, "ACTION", (Icallback)tgg3_cb);
tgg4 = IupToggle("Horizontal Grid", NULL);
IupSetCallback(tgg4, "ACTION", (Icallback)tgg4_cb);
lbl2 = IupLabel("");
IupSetAttribute(lbl2, "SEPARATOR", "HORIZONTAL");
tgg5 = IupToggle("Legend", NULL);
IupSetCallback(tgg5, "ACTION", (Icallback)tgg5_cb);
lbl3 = IupLabel("");
IupSetAttribute(lbl3, "SEPARATOR", "HORIZONTAL");
bt1 = IupButton("Export PDF", NULL);
IupSetCallback(bt1, "ACTION", (Icallback)bt1_cb);
vboxl = IupVbox(f1, f2, lbl1, tgg3, tgg4, lbl2, tgg5, lbl3, bt1, NULL);
//.........这里部分代码省略.........
示例2: k_any
static int k_any(Ihandle *ih, int c)
{
if (iup_isprint(c))
printf("K_ANY(%s, %d = %s \'%c\')", IupGetAttribute(ih, "TESTTITLE"), c, iupKeyCodeToName(c), (char)c);
else
printf("K_ANY(%s, %d = %s)", IupGetAttribute(ih, "TESTTITLE"), c, iupKeyCodeToName(c));
printf(" MODKEYSTATE(%s)\n", IupGetGlobal("MODKEYSTATE"));
switch(c)
{
case K_r:
IupSetAttribute(ih, "RASTERSIZE", "300x300");
IupRefresh(ih);
IupFlush();
printf(" RASTERSIZE=%s\n", IupGetAttribute(ih, "RASTERSIZE"));
break;
case K_1:
new_dialog(1, "SIZE=FULLxFULL + IupShow.\n"
"Check also F1 = RASTERSIZE+IupRefresh.\n"
"close_cb returns IGNORE.");
break;
case K_2:
new_dialog(2, "Only common dlg decorations.\n"
"ShowXY.\n"
"min/max size.");
break;
case K_3:
new_dialog(3, "NO decorations");
break;
case K_4:
new_dialog(4, "PLACEMENT.\n"
"Repeat key to test variations.");
break;
case K_5:
new_dialog(5, "IupPopup");
break;
case K_6:
new_dialog(6, "FULLSCREEN");
break;
case K_p:
{
static int count = 0;
if (count == 0)
IupSetAttribute(ih, "PLACEMENT", "MAXIMIZED");
else if (count == 1)
IupSetAttribute(ih, "PLACEMENT", "MINIMIZED");
else if (count == 2)
IupSetAttribute(ih, "PLACEMENT", "NORMAL");
else
IupSetAttribute(ih, "PLACEMENT", "FULL");
count++;
if (count == 4) // cicle from 0 to 3
count = 0;
IupShow(ih);
}
break;
case K_s:
IupShow(IupGetHandle("_MAIN_DIALOG_TEST_"));
break;
case K_f:
if (IupGetInt(ih, "FULLSCREEN"))
IupSetAttribute(ih, "FULLSCREEN", "NO");
else
IupSetAttribute(ih, "FULLSCREEN", "YES");
break;
case K_ESC:
IupDestroy(ih);
return IUP_IGNORE;
case K_c:
return IUP_CLOSE;
case K_h:
IupHide(ih);
break;
}
return IUP_DEFAULT;
}
示例3: GLCanvasCubeTest
void GLCanvasCubeTest(void)
{
Ihandle *dlg, *canvas, *box, *gtoggle, *gtoggle1, *gtoggle2,
*hbox, *vbox, *glabel, *gsep1, *gsep2, *gbutton1, *gbutton2,
*pbar1, *pbar2, *glink, *gval1, *gval2, *gframe1, *gframe2,
*gexp1, *gexp2, *image_open, *image_close, *image_high,
*gframe3, *vbox2, *gtoggle3, *gtoggle4, *gtoggle5, *gsbox,
*text, *vbox3, *matrix, *image_val;
IupGLCanvasOpen();
IupGLControlsOpen();
IupControlsOpen();
glabel = IupGLLabel("Label");
// IupSetAttribute(glabel, "FGCOLOR", "255 255 255");
IupSetAttribute(glabel, "FONT", "Helvetica, 24");
IupSetAttributeHandle(glabel, "IMAGE", load_image_Tecgraf());
gbutton1 = IupGLButton("Button");
IupSetAttribute(gbutton1, "PADDING", "5x5");
//IupSetAttribute(gbutton1, "BGCOLOR", "245 0 245 92");
IupSetCallback(gbutton1, "ACTION", button_action_cb);
IupSetAttribute(gbutton1, "NAME", "button1");
IupSetAttribute(gbutton1, "TIP", "Button Tip");
// IupSetAttribute(gbutton1, "RASTERSIZE", "x100");
if (0)
{
Ihandle* pressed_back = IupLoadImage("../test/pressed_back.png");
Ihandle* enabled_back = IupLoadImage("../test/enabled_back.png");
Ihandle* highlighted_back = IupLoadImage("../test/highlighted_back.png");
IupSetAttributeHandle(gbutton1, "BACKIMAGE", enabled_back);
IupSetAttributeHandle(gbutton1, "BACKIMAGEPRESS", pressed_back);
IupSetAttributeHandle(gbutton1, "BACKIMAGEHIGHLIGHT", highlighted_back);
IupSetAttribute(gbutton1, "BORDERCOLOR", "0 0 0 0");
}
gbutton2 = IupGLButton(NULL);
IupSetAttribute(gbutton2, "PADDING", "5x5");
IupSetAttributeHandle(gbutton2, "IMAGE", load_image_FileSave());
IupSetCallback(gbutton2, "ACTION", button_action_cb);
IupSetAttribute(gbutton2, "NAME", "button2");
gtoggle = IupGLToggle("Toggle");
IupSetAttribute(gtoggle, "PADDING", "5x5");
IupSetCallback(gtoggle, "ACTION", (Icallback)toggle_action_cb);
IupSetAttribute(gtoggle, "NAME", "toggle");
gtoggle1 = IupGLToggle(NULL);
IupSetAttribute(gtoggle1, "PADDING", "5x5");
IupSetAttributeHandle(gtoggle1, "IMAGE", load_image_Test());
IupSetCallback(gtoggle1, "ACTION", (Icallback)toggle_action_cb);
IupSetAttribute(gtoggle1, "NAME", "toggle1");
gtoggle2 = IupGLToggle(NULL);
IupSetAttribute(gtoggle2, "PADDING", "5x5");
IupSetAttributeHandle(gtoggle2, "IMAGE", load_image_Test());
IupSetCallback(gtoggle2, "ACTION", (Icallback)toggle_action_cb);
IupSetAttribute(gtoggle2, "NAME", "toggle2");
gsep1 = IupGLSeparator();
glink = IupGLLink("http://www.tecgraf.puc-rio.br/iup", "IUP Toolkit");
IupSetCallback(glink, "ACTION", (Icallback)link_action_cb);
pbar1 = IupGLProgressBar();
IupSetAttribute(pbar1, "VALUE", "0.3");
IupSetAttribute(pbar1, "SHOWTEXT", "Yes");
//image_val = IupLoadImage("../test/slider_handler.png");
gval1 = IupGLVal();
IupSetAttribute(gval1, "VALUE", "0.3");
IupSetCallback(gval1, "VALUECHANGED_CB", val_action_cb);
IupSetAttribute(gval1, "PROGRESSBAR", (char*)pbar1);
IupSetAttribute(gval1, "NAME", "val1");
IupSetAttribute(gval1, "TIP", "Val Tip");
//IupSetAttributeHandle(gval1, "IMAGE", image_val);
hbox = IupHbox(glabel, gsep1, gbutton1, gtoggle, glink, pbar1, gval1, NULL);
IupSetAttribute(hbox, "ALIGNMENT", "ACENTER");
IupSetAttribute(hbox, "MARGIN", "5x5");
IupSetAttribute(hbox, "GAP", "5");
pbar2 = IupGLProgressBar();
IupSetAttribute(pbar2, "VALUE", "0.3");
IupSetAttribute(pbar2, "ORIENTATION", "VERTICAL");
gval2 = IupGLVal();
IupSetAttribute(gval2, "VALUE", "0.3");
IupSetAttribute(gval2, "ORIENTATION", "VERTICAL");
IupSetCallback(gval2, "VALUECHANGED_CB", val_action_cb);
IupSetAttribute(gval2, "PROGRESSBAR", (char*)pbar2);
IupSetAttribute(gval2, "NAME", "val2");
gsep2 = IupGLSeparator();
IupSetAttribute(gsep2, "ORIENTATION", "HORIZONTAL");
vbox = IupVbox(gbutton2, gsep2,
//.........这里部分代码省略.........
示例4: main
int main(int argc, char **argv)
{
Ihandle *dlg, *vbox, *multitext, *menu;
Ihandle *sub_menu_file, *file_menu, *item_exit, *item_new, *item_open, *item_save, *item_saveas, *item_revert;
Ihandle *sub_menu_edit, *edit_menu, *item_find, *item_goto, *item_copy, *item_paste, *item_cut, *item_delete, *item_select_all;
Ihandle *btn_cut, *btn_copy, *btn_paste, *btn_find, *btn_new, *btn_open, *btn_save;
Ihandle *sub_menu_format, *format_menu, *item_font;
Ihandle *sub_menu_help, *help_menu, *item_help, *item_about;
Ihandle *sub_menu_view, *view_menu, *item_toolbar, *item_statusbar;
Ihandle *lbl_statusbar, *toolbar_hb, *recent_menu;
Ihandle *config;
const char* font;
IupOpen(&argc, &argv);
IupImageLibOpen();
config = IupConfig();
IupSetAttribute(config, "APP_NAME", "simple_notepad");
IupConfigLoad(config);
multitext = IupText(NULL);
IupSetAttribute(multitext, "MULTILINE", "YES");
IupSetAttribute(multitext, "EXPAND", "YES");
IupSetAttribute(multitext, "NAME", "MULTITEXT");
IupSetAttribute(multitext, "DIRTY", "NO");
IupSetCallback(multitext, "CARET_CB", (Icallback)multitext_caret_cb);
IupSetCallback(multitext, "VALUECHANGED_CB", (Icallback)multitext_valuechanged_cb);
IupSetCallback(multitext, "DROPFILES_CB", (Icallback)dropfiles_cb);
font = IupConfigGetVariableStr(config, "MainWindow", "Font");
if (font)
IupSetStrAttribute(multitext, "FONT", font);
lbl_statusbar = IupLabel("Lin 1, Col 1");
IupSetAttribute(lbl_statusbar, "NAME", "STATUSBAR");
IupSetAttribute(lbl_statusbar, "EXPAND", "HORIZONTAL");
IupSetAttribute(lbl_statusbar, "PADDING", "10x5");
item_new = IupItem("New\tCtrl+N", NULL);
IupSetAttribute(item_new, "IMAGE", "IUP_FileNew");
IupSetCallback(item_new, "ACTION", (Icallback)item_new_action_cb);
btn_new = IupButton(NULL, NULL);
IupSetAttribute(btn_new, "IMAGE", "IUP_FileNew");
IupSetAttribute(btn_new, "FLAT", "Yes");
IupSetCallback(btn_new, "ACTION", (Icallback)item_new_action_cb);
IupSetAttribute(btn_new, "TIP", "New (Ctrl+N)");
IupSetAttribute(btn_new, "CANFOCUS", "No");
item_open = IupItem("&Open...\tCtrl+O", NULL);
IupSetAttribute(item_open, "IMAGE", "IUP_FileOpen");
IupSetCallback(item_open, "ACTION", (Icallback)item_open_action_cb);
btn_open = IupButton(NULL, NULL);
IupSetAttribute(btn_open, "IMAGE", "IUP_FileOpen");
IupSetAttribute(btn_open, "FLAT", "Yes");
IupSetCallback(btn_open, "ACTION", (Icallback)item_open_action_cb);
IupSetAttribute(btn_open, "TIP", "Open (Ctrl+O)");
IupSetAttribute(btn_open, "CANFOCUS", "No");
item_save = IupItem("Save\tCtrl+S", NULL);
IupSetAttribute(item_save, "NAME", "ITEM_SAVE");
IupSetAttribute(item_save, "IMAGE", "IUP_FileSave");
IupSetCallback(item_save, "ACTION", (Icallback)item_save_action_cb);
btn_save = IupButton(NULL, NULL);
IupSetAttribute(btn_save, "IMAGE", "IUP_FileSave");
IupSetAttribute(btn_save, "FLAT", "Yes");
IupSetCallback(btn_save, "ACTION", (Icallback)item_save_action_cb);
IupSetAttribute(btn_save, "TIP", "Save (Ctrl+S)");
IupSetAttribute(btn_save, "CANFOCUS", "No");
item_saveas = IupItem("Save &As...", NULL);
IupSetAttribute(item_saveas, "NAME", "ITEM_SAVEAS");
IupSetCallback(item_saveas, "ACTION", (Icallback)item_saveas_action_cb);
item_revert = IupItem("Revert", NULL);
IupSetAttribute(item_revert, "NAME", "ITEM_REVERT");
IupSetCallback(item_revert, "ACTION", (Icallback)item_revert_action_cb);
item_exit = IupItem("E&xit", NULL);
IupSetCallback(item_exit, "ACTION", (Icallback)item_exit_action_cb);
item_find = IupItem("&Find...\tCtrl+F", NULL);
IupSetAttribute(item_find, "IMAGE", "IUP_EditFind");
IupSetCallback(item_find, "ACTION", (Icallback)item_find_action_cb);
btn_find = IupButton(NULL, NULL);
IupSetAttribute(btn_find, "IMAGE", "IUP_EditFind");
IupSetAttribute(btn_find, "FLAT", "Yes");
IupSetCallback(btn_find, "ACTION", (Icallback)item_find_action_cb);
IupSetAttribute(btn_find, "TIP", "Find (Ctrl+F)");
IupSetAttribute(btn_find, "CANFOCUS", "No");
item_cut = IupItem("Cut\tCtrl+X", NULL);
IupSetAttribute(item_cut, "NAME", "ITEM_CUT");
IupSetAttribute(item_cut, "IMAGE", "IUP_EditCut");
IupSetCallback(item_cut, "ACTION", (Icallback)item_cut_action_cb);
item_copy = IupItem("Copy\tCtrl+C", NULL);
IupSetAttribute(item_copy, "NAME", "ITEM_COPY");
IupSetAttribute(item_copy, "IMAGE", "IUP_EditCopy");
IupSetCallback(item_copy, "ACTION", (Icallback)item_copy_action_cb);
item_paste = IupItem("Paste\tCtrl+V", NULL);
IupSetAttribute(item_paste, "NAME", "ITEM_PASTE");
//.........这里部分代码省略.........
示例5: iupmaskRemove
void iupmaskRemove(Ihandle *ih)
{
IupSetAttribute(ih,"MASK", NULL);
}
示例6: multitext_valuechanged_cb
int multitext_valuechanged_cb(Ihandle* multitext)
{
IupSetAttribute(multitext, "DIRTY", "YES");
return IUP_DEFAULT;
}
示例7: item_find_action_cb
int item_find_action_cb(Ihandle* item_find)
{
Ihandle* dlg = (Ihandle*)IupGetAttribute(item_find, "FIND_DIALOG");
if (!dlg)
{
Ihandle* multitext = IupGetDialogChild(item_find, "MULTITEXT");
Ihandle *box, *bt_next, *bt_close, *txt, *find_case;
txt = IupText(NULL);
IupSetAttribute(txt, "NAME", "FIND_TEXT");
IupSetAttribute(txt, "VISIBLECOLUMNS", "20");
find_case = IupToggle("Case Sensitive", NULL);
IupSetAttribute(find_case, "NAME", "FIND_CASE");
bt_next = IupButton("Find Next", NULL);
IupSetAttribute(bt_next, "PADDING", "10x2");
IupSetCallback(bt_next, "ACTION", (Icallback)find_next_action_cb);
bt_close = IupButton("Close", NULL);
IupSetCallback(bt_close, "ACTION", (Icallback)find_close_action_cb);
IupSetAttribute(bt_close, "PADDING", "10x2");
box = IupVbox(
IupLabel("Find What:"),
txt,
find_case,
IupSetAttributes(IupHbox(
IupFill(),
bt_next,
bt_close,
NULL), "NORMALIZESIZE=HORIZONTAL"),
NULL);
IupSetAttribute(box, "MARGIN", "10x10");
IupSetAttribute(box, "GAP", "5");
dlg = IupDialog(box);
IupSetAttribute(dlg, "TITLE", "Find");
IupSetAttribute(dlg, "DIALOGFRAME", "Yes");
IupSetAttributeHandle(dlg, "DEFAULTENTER", bt_next);
IupSetAttributeHandle(dlg, "DEFAULTESC", bt_close);
IupSetAttributeHandle(dlg, "PARENTDIALOG", IupGetDialog(item_find));
/* Save the multiline to acess it from the callbacks */
IupSetAttribute(dlg, "MULTITEXT", (char*)multitext);
/* Save the dialog to reuse it */
IupSetAttribute(item_find, "FIND_DIALOG", (char*)dlg);
}
/* centerparent first time, next time reuse the last position */
IupShowXY(dlg, IUP_CURRENT, IUP_CURRENT);
return IUP_DEFAULT;
}
示例8: iMatrixListKeyAny_CB
static int iMatrixListKeyAny_CB(Ihandle *ih, int key)
{
ImatrixListData* mtxList = (ImatrixListData*)iupAttribGet(ih, "_IUPMTXLIST_DATA");
if (IupGetInt(ih, "EDIT_MODE"))
return IUP_CONTINUE;
if (key == K_SP || key == K_sSP)
{
if (mtxList->image_col != 0)
{
int lin = ih->data->lines.focus_cell;
int itemactive = IupGetIntId(ih, "ITEMACTIVE", lin);
int imageactive = IupGetIntId(ih, "IMAGEACTIVE", lin);
int lines_num = ih->data->lines.num;
if (!itemactive || !imageactive)
return IUP_IGNORE;
if (!mtxList->editable || lin != lines_num-1)
{
IFnii imagevaluechanged_cb = (IFnii)IupGetCallback(ih, "IMAGEVALUECHANGED_CB");
int imagevalue = !IupGetIntId(ih, "IMAGEVALUE", lin);
if (!imagevaluechanged_cb || imagevaluechanged_cb(ih, lin, imagevalue) != IUP_IGNORE)
{
IupSetIntId(ih, "IMAGEVALUE", lin, imagevalue);
IupSetfAttribute(ih, "REDRAW", "L%d", lin);
return IUP_IGNORE;
}
}
return IUP_IGNORE;
}
}
else if (key == K_HOME || key == K_sHOME)
{
iMatrixListSetFocusItem(ih, mtxList, 1);
IupSetAttribute(ih, "SHOW", "1:*");
return IUP_IGNORE;
}
else if (key == K_END || key == K_sEND)
{
iMatrixListSetFocusItem(ih, mtxList, ih->data->lines.num-1);
IupSetfAttribute(ih, "SHOW", "%d:*", ih->data->lines.num-1);
return IUP_IGNORE;
}
else if (key == K_DEL || key == K_sDEL)
{
if (mtxList->editable)
{
IFni listremove_cb = (IFni)IupGetCallback(ih, "LISTREMOVE_CB");
/* notify the application that a line will be removed */
int lin = ih->data->lines.focus_cell;
int itemactive = IupGetIntId(ih, "ITEMACTIVE", lin);
if (itemactive && (!listremove_cb || listremove_cb(ih, lin) != IUP_IGNORE))
{
/* Remove the line */
IupSetInt(ih, "DELLIN", lin);
return IUP_IGNORE;
}
}
}
else if (key == K_F2 || key == K_CR || key == K_sCR)
{
int lin = ih->data->lines.focus_cell;
iMatrixListSetFocusItem(ih, mtxList, lin); /* this will position focus at the right cell */
IupSetAttribute(ih, "EDIT_MODE", "Yes");
return IUP_IGNORE;
}
else
{
/* if a valid character is pressed enter edition mode */
if (iup_isprint(key))
{
int lin = ih->data->lines.focus_cell;
iMatrixListSetFocusItem(ih, mtxList, lin); /* this will position focus at the right cell */
IupSetAttribute(ih, "EDIT_MODE", "Yes");
if (IupGetInt(ih, "EDIT_MODE"))
{
char value[2] = {0,0};
value[0] = (char)key;
IupStoreAttribute(ih->data->datah, "VALUEMASKED", value);
IupSetAttribute(ih->data->datah, "CARET", "2");
return IUP_IGNORE;
}
}
}
return IUP_CONTINUE;
}
示例9: iMatrixListInitializeImages
static void iMatrixListInitializeImages(void)
{
Ihandle *image_uncheck, *image_check, *image_del, *image_add;
#define IMTXL_IMG_WIDTH 16
#define IMTXL_IMG_HEIGHT 16
unsigned char img_check[IMTXL_IMG_WIDTH*IMTXL_IMG_HEIGHT] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0,
0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0,
0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0,
0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0,
0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0,
0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0,
0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0,
0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0,
0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
};
unsigned char img_uncheck[IMTXL_IMG_WIDTH*IMTXL_IMG_HEIGHT] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
};
unsigned char img_del[IMTXL_IMG_WIDTH*IMTXL_IMG_HEIGHT] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0,
0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0,
0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0,
0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0,
0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
};
unsigned char img_add[IMTXL_IMG_WIDTH*IMTXL_IMG_HEIGHT] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0,
0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0,
0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0,
0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0,
0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0,
0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
};
image_uncheck = IupImage(IMTXL_IMG_WIDTH, IMTXL_IMG_HEIGHT, img_uncheck);
image_check = IupImage(IMTXL_IMG_WIDTH, IMTXL_IMG_HEIGHT, img_check);
image_del = IupImage(IMTXL_IMG_WIDTH, IMTXL_IMG_HEIGHT, img_del);
image_add = IupImage(IMTXL_IMG_WIDTH, IMTXL_IMG_HEIGHT, img_add);
IupSetAttribute(image_uncheck, "0", "100 100 100");
IupSetAttribute(image_uncheck, "1", "255 255 255");
IupSetAttribute(image_check, "0", "100 100 100");
IupSetAttribute(image_check, "1", "255 255 255");
IupSetAttribute(image_del, "0", "BGCOLOR");
IupSetAttribute(image_del, "1", "255 0 0");
IupSetAttribute(image_add, "0", "BGCOLOR");
IupSetAttribute(image_add, "1", "100 100 100");
//.........这里部分代码省略.........
示例10: iMatrixListEdition_CB
static int iMatrixListEdition_CB(Ihandle *ih, int lin, int col, int mode, int update)
{
ImatrixListData* mtxList = (ImatrixListData*)iupAttribGet(ih, "_IUPMTXLIST_DATA");
int lines_num = ih->data->lines.num;
IFniiii listedition_cb = (IFniiii)IupGetCallback(ih, "LISTEDITION_CB");
/* allow editing only at the label column */
if (col != mtxList->label_col)
return IUP_IGNORE;
/* allow editing only if active */
if (!IupGetIntId2(ih, "ITEMACTIVE", lin, col))
return IUP_IGNORE;
/* call application callback before anything */
if (listedition_cb && listedition_cb(ih, lin, col, mode, update)==IUP_IGNORE)
return IUP_IGNORE;
if (mode==1 && mtxList->image_col)
{
if (!IupGetInt(ih, "SHOWDELETE"))
IupSetAttributeId(ih, "LINEDELETE", lin, "Yes");
IupSetfAttribute(ih, "REDRAW", "C%d", mtxList->image_col);
}
/* adding a new line */
if (mtxList->editable && lin == lines_num-1 && mode == 0)
{
/* clear any edition if not updating */
if (update==0)
{
IupSetAttribute(ih, "VALUE", "");
IupSetfAttribute(ih, "REDRAW", "L%d", lin);
}
else
{
/* check if entered a non empty value */
char* value = IupGetAttribute(ih, "VALUE");
if (value && value[0]!=0)
{
IFni listinsert_cb = (IFni)IupGetCallback(ih, "LISTINSERT_CB");
/* notify the application that a line will be inserted */
if (listinsert_cb && listinsert_cb(ih, lin) == IUP_IGNORE)
{
IupSetAttribute(ih, "VALUE", "");
IupSetfAttribute(ih, "REDRAW", "L%d", lin);
}
else
{
/* Add a new empty line */
IupSetInt(ih, "ADDLIN", lin);
}
}
}
}
if (mode==0)
{
if (!IupGetInt(ih, "SHOWDELETE"))
{
/* turn off drawing, but prepare for delete */
if (update && iupAttribGet(ih, "EDITIONHIDEFOCUS"))
iupAttribSetInt(ih, "_IUPMTXLIST_DELETE", (int)clock());
IupSetAttributeId(ih, "LINEDELETE", lin, NULL);
}
IupSetfAttribute(ih, "REDRAW", "C%d", mtxList->image_col);
}
return IUP_DEFAULT;
}
示例11: iMatrixListRelease_CB
static int iMatrixListRelease_CB(Ihandle *ih, int lin, int col, char *status)
{
ImatrixListData* mtxList = (ImatrixListData*)iupAttribGet(ih, "_IUPMTXLIST_DATA");
IFniis listrelease_cb = (IFniis)IupGetCallback(ih, "LISTRELEASE_CB");
int lines_num = ih->data->lines.num;
int itemactive, imageactive;
/* call application callback before anything */
if (listrelease_cb && listrelease_cb(ih, lin, col, status)==IUP_IGNORE)
return IUP_IGNORE;
if (mtxList->last_click_lin != lin ||
mtxList->last_click_col != col)
return IUP_DEFAULT;
/* only the image column must be processed */
if (col != mtxList->image_col)
return IUP_DEFAULT;
itemactive = IupGetIntId(ih, "ITEMACTIVE", lin);
imageactive = IupGetIntId(ih, "IMAGEACTIVE", lin);
if (!itemactive || !imageactive)
return IUP_DEFAULT;
if (mtxList->editable && lin == lines_num-1)
{
/* click on IMAGEADD - start editing */
iMatrixListSetFocusItem(ih, mtxList, lin);
IupSetAttribute(ih, "EDIT_MODE", "Yes");
}
else if (iMatrixListCheckDelete(ih))
{
/* click on IMAGEDEL */
IFni listremove_cb = (IFni)IupGetCallback(ih, "LISTREMOVE_CB");
if (lin == 0)
{
if (mtxList->editable)
lines_num--;
for (lin = lines_num-1; lin>0; lin--)
{
itemactive = IupGetIntId(ih, "ITEMACTIVE", lin);
imageactive = IupGetIntId(ih, "IMAGEACTIVE", lin);
if (!itemactive || !imageactive)
continue;
if (!listremove_cb || listremove_cb(ih, lin) != IUP_IGNORE)
IupSetInt(ih, "DELLIN", lin);
}
}
else
{
/* notify the application that a line will be removed */
if (!listremove_cb || listremove_cb(ih, lin) != IUP_IGNORE)
{
/* Remove the line */
IupSetInt(ih, "DELLIN", lin);
}
}
}
else
{
/* click on IMAGECHECK/IMAGEUNCHECK */
IFnii imagevaluechanged_cb = (IFnii)IupGetCallback(ih, "IMAGEVALUECHANGED_CB");
int imagevalue = !IupGetIntId(ih, "IMAGEVALUE", lin);
if (!imagevaluechanged_cb || imagevaluechanged_cb(ih, lin, imagevalue) != IUP_IGNORE)
{
IupSetIntId(ih, "IMAGEVALUE", lin, imagevalue);
IupSetfAttribute(ih, "REDRAW", "L%d", lin);
if (lin==0)
{
if (mtxList->editable)
lines_num--;
for (lin=1; lin<lines_num; lin++)
{
itemactive = IupGetIntId(ih, "ITEMACTIVE", lin);
imageactive = IupGetIntId(ih, "IMAGEACTIVE", lin);
if (!itemactive || !imageactive)
continue;
if (!imagevaluechanged_cb || imagevaluechanged_cb(ih, lin, imagevalue) != IUP_IGNORE)
{
IupSetIntId(ih, "IMAGEVALUE", lin, imagevalue);
IupSetfAttribute(ih, "REDRAW", "L%d", lin);
}
}
}
}
}
return IUP_DEFAULT;
}
示例12: inicio_cb
/* start button callback */
int inicio_cb(void)
{
IupSetAttribute(gauge, "VALUE", "0") ;
return IUP_DEFAULT ;
}
示例13: main
int main(int argc, char **argv)
{
Ihandle *dlg, *bt, *dbox, *lbl, *ml, *hbox, *bt2, *txt;
IupOpen(&argc, &argv);
bt = IupButton("Detache Me!", NULL);
IupSetCallback(bt, "ACTION", (Icallback)btn_detach_cb);
IupSetHandle("detach", bt);
ml = IupMultiLine(NULL);
IupSetAttribute(ml, "EXPAND", "YES");
IupSetAttribute(ml, "VISIBLELINES", "5");
hbox = IupHbox(bt, ml, NULL);
IupSetAttribute(hbox, "MARGIN", "10x0");
dbox = IupDetachBox(hbox);
IupSetAttribute(dbox, "ORIENTATION", "VERTICAL");
//IupSetAttribute(dbox, "SHOWGRIP", "NO");
//IupSetAttribute(dbox, "BARSIZE", "0");
//IupSetAttribute(dbox, "COLOR", "255 0 0");
IupSetCallback(dbox, "DETACHED_CB", (Icallback)detached_cb);
IupSetHandle("dbox", dbox);
lbl = IupLabel("Label");
IupSetAttribute(lbl, "EXPAND", "VERTICAL");
bt2 = IupButton("Restore me!", NULL);
IupSetAttribute(bt2, "EXPAND", "YES");
IupSetAttribute(bt2, "ACTIVE", "NO");
IupSetCallback(bt2, "ACTION", (Icallback)btn_restore_cb);
IupSetHandle("restore", bt2);
txt = IupText(NULL);
IupSetAttribute(txt, "EXPAND", "HORIZONTAL");
dlg = IupDialog(IupVbox(dbox, lbl, bt2, txt, NULL));
IupSetAttribute(dlg, "TITLE", "IupDetachBox Example");
IupSetAttribute(dlg, "MARGIN", "10x10");
IupSetAttribute(dlg, "GAP", "10");
IupSetAttribute(dlg, "RASTERSIZE", "300x300");
IupShow(dlg);
IupMainLoop();
IupClose();
return EXIT_SUCCESS;
}
示例14: InitPlots
void InitPlots(void)
{
int theI;
float x, y;
// PLOT 0 - MakeExamplePlot1
IupSetAttribute(plot[0], "TITLE", "AutoScale");
IupSetAttribute(plot[0], "MARGINTOP", "40");
IupSetAttribute(plot[0], "MARGINLEFT", "40");
IupSetAttribute(plot[0], "MARGINBOTTOM", "50");
IupSetAttribute(plot[0], "TITLEFONTSIZE", "16");
IupSetAttribute(plot[0], "AXS_XLABEL", "gnu (Foo)");
IupSetAttribute(plot[0], "AXS_YLABEL", "Space (m^3)");
IupSetAttribute(plot[0], "AXS_YFONTSIZE", "7");
IupSetAttribute(plot[0], "AXS_YTICKFONTSIZE", "7");
IupSetAttribute(plot[0], "LEGENDSHOW", "YES");
IupSetAttribute(plot[0], "AXS_XFONTSIZE", "10");
IupSetAttribute(plot[0], "AXS_YFONTSIZE", "10");
IupSetAttribute(plot[0], "AXS_XLABELCENTERED", "NO");
IupSetAttribute(plot[0], "AXS_YLABELCENTERED", "NO");
// IupSetAttribute(plot[0], "USE_IMAGERGB", "YES");
// IupSetAttribute(plot[0], "USE_GDI+", "YES");
float theFac = (float)1.0/(100*100*100);
IupPPlotBegin(plot[0], 0);
for (theI=-100; theI<=100; theI++)
{
x = (float)(theI+50);
y = theFac*theI*theI*theI;
IupPPlotAdd(plot[0], x, y);
}
IupPPlotEnd(plot[0]);
IupSetAttribute(plot[0], "DS_LINEWIDTH", "3");
IupSetAttribute(plot[0], "DS_LEGEND", "Line");
theFac = (float)2.0/100;
IupPPlotBegin(plot[0], 0);
for (theI=-100; theI<=100; theI++)
{
x = (float)theI;
y = -theFac*theI;
IupPPlotAdd(plot[0], x, y);
}
IupPPlotEnd(plot[0]);
IupSetAttribute(plot[0], "DS_LEGEND", "Curve 1");
IupPPlotBegin(plot[0], 0);
for (theI=-100; theI<=100; theI++)
{
x = (float)(0.01*theI*theI-30);
y = (float)0.01*theI;
IupPPlotAdd(plot[0], x, y);
}
IupPPlotEnd(plot[0]);
IupSetAttribute(plot[0], "DS_LEGEND", "Curve 2");
// PLOT 1 - MakeExamplePlot2
IupSetAttribute(plot[1], "TITLE", "No Autoscale+No CrossOrigin");
IupSetAttribute(plot[1], "TITLEFONTSIZE", "16");
IupSetAttribute(plot[1], "MARGINTOP", "40");
IupSetAttribute(plot[1], "MARGINLEFT", "55");
IupSetAttribute(plot[1], "MARGINBOTTOM", "50");
IupSetAttribute(plot[1], "BGCOLOR", "0 192 192");
IupSetAttribute(plot[1], "AXS_XLABEL", "Tg (X)");
IupSetAttribute(plot[1], "AXS_YLABEL", "Tg (Y)");
IupSetAttribute(plot[1], "AXS_XAUTOMIN", "NO");
IupSetAttribute(plot[1], "AXS_XAUTOMAX", "NO");
IupSetAttribute(plot[1], "AXS_YAUTOMIN", "NO");
IupSetAttribute(plot[1], "AXS_YAUTOMAX", "NO");
IupSetAttribute(plot[1], "AXS_XMIN", "10");
IupSetAttribute(plot[1], "AXS_XMAX", "60");
IupSetAttribute(plot[1], "AXS_YMIN", "-0.5");
IupSetAttribute(plot[1], "AXS_YMAX", "0.5");
IupSetAttribute(plot[1], "AXS_XCROSSORIGIN", "NO");
IupSetAttribute(plot[1], "AXS_YCROSSORIGIN", "NO");
IupSetAttribute(plot[1], "AXS_XFONTSTYLE", "BOLD");
IupSetAttribute(plot[1], "AXS_YFONTSTYLE", "BOLD");
IupSetAttribute(plot[1], "AXS_XREVERSE", "YES");
IupSetAttribute(plot[1], "GRIDCOLOR", "128 255 128");
IupSetAttribute(plot[1], "GRIDLINESTYLE", "DOTTED");
IupSetAttribute(plot[1], "GRID", "YES");
IupSetAttribute(plot[1], "LEGENDSHOW", "YES");
theFac = (float)1.0/(100*100*100);
IupPPlotBegin(plot[1], 0);
for (theI=0; theI<=100; theI++)
{
x = (float)(theI);
y = theFac*theI*theI*theI;
IupPPlotAdd(plot[1], x, y);
}
IupPPlotEnd(plot[1]);
theFac = (float)2.0/100;
IupPPlotBegin(plot[1], 0);
for (theI=0; theI<=100; theI++)
{
x = (float)(theI);
y = -theFac*theI;
//.........这里部分代码省略.........
示例15: main
int main(int argc, char **argv)
{
Ihandle *dlg, *vbox, *multitext, *menu;
Ihandle *sub_menu_file, *file_menu, *item_exit, *item_open, *item_saveas, *btn_open, *btn_save;
Ihandle *sub_menu_edit, *edit_menu, *item_find, *item_goto, *btn_find;
Ihandle *sub_menu_format, *format_menu, *item_font;
Ihandle *sub_menu_help, *help_menu, *item_about;
Ihandle *lbl_statusbar, *toolbar_hb;
IupOpen(&argc, &argv);
IupImageLibOpen();
multitext = IupText(NULL);
IupSetAttribute(multitext, "MULTILINE", "YES");
IupSetAttribute(multitext, "EXPAND", "YES");
IupSetAttribute(multitext, "NAME", "MULTITEXT");
lbl_statusbar = IupLabel("Lin 1, Col 1");
IupSetAttribute(lbl_statusbar, "NAME", "STATUSBAR");
IupSetAttribute(lbl_statusbar, "EXPAND", "HORIZONTAL");
IupSetAttribute(lbl_statusbar, "PADDING", "10x5");
item_open = IupItem("&Open...\tCtrl+O", NULL);
btn_open = IupButton(NULL, NULL);
IupSetAttribute(btn_open, "IMAGE", "IUP_FileOpen");
IupSetAttribute(btn_open, "FLAT", "Yes");
item_saveas = IupItem("Save &As...\tCtrl+S", NULL);
btn_save = IupButton(NULL, NULL);
IupSetAttribute(btn_save, "IMAGE", "IUP_FileSave");
IupSetAttribute(btn_save, "FLAT", "Yes");
item_exit = IupItem("E&xit", NULL);
item_find = IupItem("&Find...\tCtrl+F", NULL);
btn_find = IupButton(NULL, NULL);
IupSetAttribute(btn_find, "IMAGE", "IUP_EditFind");
IupSetAttribute(btn_find, "FLAT", "Yes");
toolbar_hb = IupHbox(
btn_open,
btn_save,
IupSetAttributes(IupLabel(NULL), "SEPARATOR=VERTICAL"),
btn_find,
NULL);
IupSetAttribute(toolbar_hb, "MARGIN", "5x5");
IupSetAttribute(toolbar_hb, "GAP", "2");
item_goto = IupItem("&Go To...\tCtrl+G", NULL);
item_font = IupItem("&Font...", NULL);
item_about = IupItem("&About...", NULL);
IupSetCallback(item_open, "ACTION", (Icallback)item_open_action_cb);
IupSetCallback(btn_open, "ACTION", (Icallback)item_open_action_cb);
IupSetCallback(item_saveas, "ACTION", (Icallback)item_saveas_action_cb);
IupSetCallback(btn_save, "ACTION", (Icallback)item_saveas_action_cb);
IupSetCallback(item_exit, "ACTION", (Icallback)item_exit_action_cb);
IupSetCallback(item_find, "ACTION", (Icallback)item_find_action_cb);
IupSetCallback(btn_find, "ACTION", (Icallback)item_find_action_cb);
IupSetCallback(item_goto, "ACTION", (Icallback)item_goto_action_cb);
IupSetCallback(item_font, "ACTION", (Icallback)item_font_action_cb);
IupSetCallback(item_about, "ACTION", (Icallback)item_about_action_cb);
IupSetCallback(multitext, "CARET_CB", (Icallback)multitext_caret_cb);
file_menu = IupMenu(
item_open,
item_saveas,
IupSeparator(),
item_exit,
NULL);
edit_menu = IupMenu(
item_find,
item_goto,
NULL);
format_menu = IupMenu(
item_font,
NULL);
help_menu = IupMenu(
item_about,
NULL);
sub_menu_file = IupSubmenu("&File", file_menu);
sub_menu_edit = IupSubmenu("&Edit", edit_menu);
sub_menu_format = IupSubmenu("F&ormat", format_menu);
sub_menu_help = IupSubmenu("&Help", help_menu);
menu = IupMenu(
sub_menu_file,
sub_menu_edit,
sub_menu_format,
sub_menu_help,
NULL);
vbox = IupVbox(
toolbar_hb,
multitext,
lbl_statusbar,
NULL);
dlg = IupDialog(vbox);
//.........这里部分代码省略.........