int main (int argc, char *argv[]){ ViewHandle * MainViewHandle = View_Initialize(NULL); /*gtk_init(&argc, &argv); */ gtk_init(NULL, NULL); GtkWidget *window = drawMain(MainViewHandle); GtkWidget *menubar = drawMenuBar(MainViewHandle); GtkWidget *vbox = gtk_vbox_new(FALSE, 0); GtkWidget *hbox = gtk_hbox_new(FALSE, 0); GtkWidget *scrollWinImage = drawImageWindow(MainViewHandle); GtkWidget *scrollWinText = drawTextWindow(MainViewHandle); /*GtkWidget *rotateWindow = */drawRotateWindow(MainViewHandle); /*GtkWidget *cropWindow = */drawCropWindow(MainViewHandle); /*GtkWidget *filterWindow = */drawColorFilterWindow(MainViewHandle); /*GtkWidget *ocrWindow = */drawOCRWindow(MainViewHandle); /*GtkWidget *aboutWindow = */drawAboutWindow(MainViewHandle); gtk_container_add(GTK_CONTAINER(window), vbox); gtk_box_pack_start(GTK_BOX(vbox), menubar, FALSE, FALSE, 3); gtk_box_pack_start(GTK_BOX(vbox), hbox, TRUE, TRUE, 0); gtk_box_pack_start(GTK_BOX(hbox), scrollWinImage, TRUE, TRUE, 0); gtk_box_pack_start(GTK_BOX(hbox), scrollWinText, TRUE, TRUE, 0); /* show the window*/ gtk_widget_show_all(window); gtk_main(); return 0; }
void Menu::newMenuSelected(int i) { _picture->showPic(); drawMenuBar(); drawMenuHilite(i); drawMenuOption(i); }
bool Menu::keyhandler(int key) { static int clockVal; static int menuActive = false; static int buttonUsed = 0; bool exitMenu = false; if (!_vm->getflag(fMenusWork) && !(_vm->getFeatures() & GF_MENUS)) return false; if (!menuActive) { clockVal = _vm->_game.clockEnabled; _vm->_game.clockEnabled = false; drawMenuBar(); } // Mouse handling if (_vm->_mouse.button) { int hmenu, vmenu; buttonUsed = 1; // Button has been used at least once if (_vm->_mouse.y <= CHAR_LINES) { // on the menubar hmenu = 0; MenuList::iterator iterh; for (iterh = _menubar.begin(); iterh != _menubar.end(); ++iterh) { AgiMenu *m = *iterh; if (mouseOverText(0, m->col, m->text)) { break; } else { hmenu++; } } if (hmenu <= _hMaxMenu) { if (_hCurMenu != hmenu) { _vCurMenu = -1; newMenuSelected(hmenu); } _hCurMenu = hmenu; } } else { // not in menubar vmenu = 0; AgiMenu *m = getMenu(_hCurMenu); MenuOptionList::iterator iterv; for (iterv = m->down.begin(); iterv != m->down.end(); ++iterv) { AgiMenuOption *do1 = *iterv; if (mouseOverText(2 + do1->index, m->wincol + 1, do1->text)) { break; } else { vmenu++; } } if (vmenu <= _vMaxMenu[_hCurMenu]) { if (_vCurMenu != vmenu) { drawMenuOption(_hCurMenu); drawMenuOptionHilite(_hCurMenu, vmenu); } _vCurMenu = vmenu; } } } else if (buttonUsed) { // Button released buttonUsed = 0; debugC(6, kDebugLevelMenu | kDebugLevelInput, "button released!"); if (_vCurMenu < 0) _vCurMenu = 0; drawMenuOptionHilite(_hCurMenu, _vCurMenu); if (_vm->_mouse.y <= CHAR_LINES) { // on the menubar } else { // see which option we selected AgiMenu *m = getMenu(_hCurMenu); MenuOptionList::iterator iterv; for (iterv = m->down.begin(); iterv != m->down.end(); ++iterv) { AgiMenuOption *d = *iterv; if (mouseOverText(2 + d->index, m->wincol + 1, d->text)) { // activate that option if (d->enabled) { debugC(6, kDebugLevelMenu | kDebugLevelInput, "event %d registered", d->event); _vm->_game.controllerOccured[d->event] = true; _vm->_menuSelected = true; break; } } } exitMenu = true; } } if (!exitMenu) { if (!menuActive) { if (_hCurMenu >= 0) { drawMenuHilite(_hCurMenu); drawMenuOption(_hCurMenu); if (!buttonUsed && _vCurMenu >= 0) drawMenuOptionHilite(_hCurMenu, _vCurMenu); } menuActive = true; } switch (key) { case KEY_ESCAPE: debugC(6, kDebugLevelMenu | kDebugLevelInput, "KEY_ESCAPE"); exitMenu = true; break; case KEY_ENTER: { debugC(6, kDebugLevelMenu | kDebugLevelInput, "KEY_ENTER"); AgiMenuOption* d = getMenuOption(_hCurMenu, _vCurMenu); if (d->enabled) { debugC(6, kDebugLevelMenu | kDebugLevelInput, "event %d registered", d->event); _vm->_game.controllerOccured[d->event] = true; _vm->_menuSelected = true; exitMenu = true; } break; } case KEY_DOWN: case KEY_UP: _vCurMenu += key == KEY_DOWN ? 1 : -1; if (_vCurMenu < 0) _vCurMenu = _vMaxMenu[_hCurMenu]; if (_vCurMenu > _vMaxMenu[_hCurMenu]) _vCurMenu = 0; drawMenuOption(_hCurMenu); drawMenuOptionHilite(_hCurMenu, _vCurMenu); break; case KEY_RIGHT: case KEY_LEFT: _hCurMenu += key == KEY_RIGHT ? 1 : -1; if (_hCurMenu < 0) _hCurMenu = _hMaxMenu; if (_hCurMenu > _hMaxMenu) _hCurMenu = 0; _vCurMenu = 0; newMenuSelected(_hCurMenu); drawMenuOptionHilite(_hCurMenu, _vCurMenu); break; } } if (exitMenu) { buttonUsed = 0; _picture->showPic(); _vm->writeStatus(); _vm->setvar(vKey, 0); _vm->_game.keypress = 0; _vm->_game.clockEnabled = clockVal; _vm->oldInputMode(); debugC(3, kDebugLevelMenu, "exit_menu: input mode reset to %d", _vm->_game.inputMode); menuActive = false; } return true; }
virtual void draw() { // Draw Wrapped Window first as it is in the background WindowDecorator::draw(); // Now draw the actual menu bar drawMenuBar(); }