int main(void) { uart_init(); shift_init(); timer_init(); display_init(); keypad_init(); serial_init(); edit_init(); clock_init(); watchdog_init(WDTO_15MS, &oops); sei(); // enable interrupts printf("\r\n*** BOOTED ***\r\nSpaceTime, yay!\r\n"); timer_beep(10); while(1) { display_update(); serial_update(); edit_update(); clock_update(); } }
void wd_init(void) { /* DjV 027 280103 ---vvv--- */ /* menu[MOPEN].ob_state = DISABLED; menu[MDELETE].ob_state = DISABLED; /* HR 151102 */ menu[MSHOWINF].ob_state = DISABLED; menu[MAPPLIK].ob_state = DISABLED; menu[MREMICON].ob_state = DISABLED; menu[MCHNGICN].ob_state = DISABLED; menu[MCLOSE].ob_state = DISABLED; menu[MCLOSEW].ob_state = DISABLED; menu[MNEWDIR].ob_state = DISABLED; menu[MSELALL].ob_state = DISABLED; menu[MSETMASK].ob_state = DISABLED; menu[MCYCLE].ob_state = DISABLED; #if MFFORMAT /* HR 050303 */ menu[MFCOPY].ob_state= DISABLED; /* DjV 006 291202 */ menu[MFFORMAT].ob_state= DISABLED; /* DjV 006 291202 */ #endif */ /* DjV 027 280103 ---^^^--- */ selection.w = NULL; selection.selected = -1; selection.n = 0; dir_init(); txt_init(); edit_init(); }
static void hostapd_cli_interactive(void) { char *hfile = NULL; char *home; printf("\nInteractive mode\n\n"); #ifdef CONFIG_HOSTAPD_CLI_HISTORY_DIR home = CONFIG_HOSTAPD_CLI_HISTORY_DIR; #else /* CONFIG_HOSTAPD_CLI_HISTORY_DIR */ home = getenv("HOME"); #endif /* CONFIG_HOSTAPD_CLI_HISTORY_DIR */ if (home) { const char *fname = ".hostapd_cli_history"; int hfile_len = os_strlen(home) + 1 + os_strlen(fname) + 1; hfile = os_malloc(hfile_len); if (hfile) os_snprintf(hfile, hfile_len, "%s/%s", home, fname); } eloop_register_signal_terminate(hostapd_cli_eloop_terminate, NULL); edit_init(hostapd_cli_edit_cmd_cb, hostapd_cli_edit_eof_cb, hostapd_cli_edit_completion_cb, NULL, hfile, NULL); eloop_register_timeout(ping_interval, 0, hostapd_cli_ping, NULL, NULL); eloop_run(); cli_txt_list_flush(&stations); edit_deinit(hfile, NULL); os_free(hfile); eloop_cancel_timeout(hostapd_cli_ping, NULL, NULL); }
static void debugmain_init(running_machine &machine) { win_i *dmain; dmain = add_win_i(machine, WIN_TYPE_MAIN); dmain->win = create_debugmain(); dmain->views[0] = DVIEW(lookup_widget(dmain->win, "console")); dmain->views[1] = DVIEW(lookup_widget(dmain->win, "disasm")); dmain->views[2] = DVIEW(lookup_widget(dmain->win, "registers")); dview_set_debug_view(dmain->views[0], machine, DVT_CONSOLE); dview_set_debug_view(dmain->views[1], machine, DVT_DISASSEMBLY); dview_set_debug_view(dmain->views[2], machine, DVT_STATE); edit_init(&dmain->ed, lookup_widget(dmain->win, "edit"), 0, 0, debugmain_process_string, dmain); /* set up disasm view */ downcast<debug_view_disasm *>(dmain->views[1]->view)->set_expression("curpc"); // debug_view_set_property_UINT32(dmain->disasm, DVP_DASM_TRACK_LIVE, 1); g_signal_connect(dmain->win, "destroy", G_CALLBACK(debugmain_destroy), dmain); gtk_widget_show_all(dmain->win); }
static void debugmain_init(running_machine *machine) { dmain = malloc(sizeof(*dmain)); memset(dmain, 0, sizeof(*dmain)); dmain->win = create_debugmain(machine); dmain->cpu = NULL; dmain->machine = machine; dmain->console_w = DVIEW(lookup_widget(dmain->win, "console")); dmain->disasm_w = DVIEW(lookup_widget(dmain->win, "disasm")); dmain->registers_w = DVIEW(lookup_widget(dmain->win, "registers")); dview_set_debug_view(dmain->console_w, machine, DVT_CONSOLE, &dmain->console); dview_set_debug_view(dmain->disasm_w, machine, DVT_DISASSEMBLY, &dmain->disasm); dview_set_debug_view(dmain->registers_w, machine, DVT_REGISTERS, &dmain->registers); edit_init(machine, &dmain->ed, lookup_widget(dmain->win, "edit"), 0, 0, debugmain_process_string, &dmain); debug_view_begin_update(dmain->disasm); disasm_view_set_expression(dmain->disasm, "curpc"); // debug_view_set_property_UINT32(dmain->disasm, DVP_DASM_TRACK_LIVE, 1); debug_view_end_update(dmain->disasm); g_signal_connect(dmain->win, "destroy", G_CALLBACK(debugmain_destroy), dmain); g_signal_connect(lookup_widget(dmain->win, "raw_opcodes"), "activate", G_CALLBACK(debugmain_raw_opcodes_activate), dmain); g_signal_connect(lookup_widget(dmain->win, "enc_opcodes"), "activate", G_CALLBACK(debugmain_enc_opcodes_activate), dmain); g_signal_connect(lookup_widget(dmain->win, "comments"), "activate", G_CALLBACK(debugmain_comments_activate), dmain); gtk_widget_show_all(dmain->win); }
static void wlantest_cli_interactive(int s) { struct wlantest_cli cli; char *home, *hfile = NULL; if (eloop_init()) return; home = getenv("HOME"); if (home) { const char *fname = ".wlantest_cli_history"; int hfile_len = os_strlen(home) + 1 + os_strlen(fname) + 1; hfile = os_malloc(hfile_len); if (hfile) os_snprintf(hfile, hfile_len, "%s/%s", home, fname); } cli.s = s; eloop_register_signal_terminate(wlantest_cli_eloop_terminate, &cli); edit_init(wlantest_cli_edit_cmd_cb, wlantest_cli_edit_eof_cb, wlantest_cli_edit_completion_cb, &cli, hfile, NULL); eloop_run(); edit_deinit(hfile, NULL); os_free(hfile); eloop_destroy(); }
int edit_file (const char *_file, int line) { static gboolean made_directory = FALSE; Dlg_head *edit_dlg; WEdit *wedit; WMenuBar *menubar; if (!made_directory) { char *dir = concat_dir_and_file (mc_config_get_cache_path (), EDIT_DIR); made_directory = (mkdir (dir, 0700) != -1 || errno == EEXIST); g_free (dir); dir = concat_dir_and_file (mc_config_get_path (), EDIT_DIR); made_directory = (mkdir (dir, 0700) != -1 || errno == EEXIST); g_free (dir); dir = concat_dir_and_file (mc_config_get_data_path (), EDIT_DIR); made_directory = (mkdir (dir, 0700) != -1 || errno == EEXIST); g_free (dir); } wedit = edit_init (NULL, 1, 0, LINES - 2, COLS, _file, line); if (wedit == NULL) return 0; /* Create a new dialog and add it widgets to it */ edit_dlg = create_dlg (FALSE, 0, 0, LINES, COLS, NULL, edit_dialog_callback, "[Internal File Editor]", NULL, DLG_WANT_TAB); edit_dlg->get_shortcut = edit_get_shortcut; edit_dlg->get_title = edit_get_title; menubar = menubar_new (0, 0, COLS, NULL); add_widget (edit_dlg, menubar); edit_init_menu (menubar); init_widget (&wedit->widget, wedit->widget.y, wedit->widget.x, wedit->widget.lines, wedit->widget.cols, edit_callback, edit_event); widget_want_cursor (wedit->widget, TRUE); add_widget (edit_dlg, wedit); add_widget (edit_dlg, buttonbar_new (TRUE)); run_dlg (edit_dlg); if (edit_dlg->state == DLG_CLOSED) destroy_dlg (edit_dlg); return 1; }
static void disasmwin_new(running_machine *machine) { disasmwin_i *dis; int item, cursel; const device_config *curcpu = debug_cpu_get_visible_cpu(machine); const disasm_subview_item *subview; char title[256]; dis = malloc(sizeof(*dis)); memset(dis, 0, sizeof(*dis)); dis->next = disasmwin_list; disasmwin_list = dis; dis->win = create_disasmwin(machine); dis->machine = machine; dis->disasm_w = DVIEW(lookup_widget(dis->win, "disasmview")); dview_set_debug_view(dis->disasm_w, machine, DVT_DISASSEMBLY, &dis->disasm); dis->cpu_w = GTK_COMBO_BOX(lookup_widget(dis->win, "cpu")); edit_init(machine, &dis->ed, lookup_widget(dis->win, "edit"), "curpc", 1, disasmwin_process_string, dis); debug_view_begin_update(dis->disasm); disasm_view_set_expression(dis->disasm, "curpc"); // debug_view_set_property_UINT32(dis->disasm, DVP_DASM_TRACK_LIVE, 1); debug_view_end_update(dis->disasm); // populate the combobox cursel = item = 0; for (subview = disasm_view_get_subview_list(dis->disasm); subview != NULL; subview = subview->next) { gtk_combo_box_append_text(dis->cpu_w, subview->name); if (cursel == 0 && subview->space->cpu == curcpu) cursel = item; item++; } gtk_combo_box_set_active(dis->cpu_w, cursel); disasm_view_set_subview(dis->disasm, cursel); subview = disasm_view_get_current_subview(dis->disasm); sprintf(title, "Disassembly: %s", subview->name); gtk_window_set_title(GTK_WINDOW(dis->win), title); g_signal_connect(dis->cpu_w, "changed", G_CALLBACK(disasmwin_cpu_changed), dis); g_signal_connect(lookup_widget(dis->win, "raw_opcodes"), "activate", G_CALLBACK(disasmwin_raw_opcodes_activate), dis); g_signal_connect(lookup_widget(dis->win, "enc_opcodes"), "activate", G_CALLBACK(disasmwin_enc_opcodes_activate), dis); g_signal_connect(lookup_widget(dis->win, "comments"), "activate", G_CALLBACK(disasmwin_comments_activate), dis); // g_signal_connect(dis->edit_w, "activate", G_CALLBACK(disasmwin_process_string), dis); g_signal_connect(dis->win, "destroy", G_CALLBACK(disasmwin_destroy), dis); gtk_widget_show_all(dis->win); }
static void memorywin_new(running_machine *machine) { memorywin_i *mem; int item, cursel; const device_config *curcpu = debug_cpu_get_visible_cpu(machine); const memory_subview_item *subview; mem = malloc(sizeof(*mem)); memset(mem, 0, sizeof(*mem)); mem->next = memorywin_list; memorywin_list = mem; mem->win = create_memorywin(machine); mem->machine = machine; mem->memory_w = DVIEW(lookup_widget(mem->win, "memoryview")); dview_set_debug_view(mem->memory_w, machine, DVT_MEMORY, &mem->memory); mem->zone_w = GTK_COMBO_BOX(lookup_widget(mem->win, "zone")); edit_init(machine, &mem->ed, lookup_widget(mem->win, "edit"), "0", 1, memorywin_process_string, mem); debug_view_begin_update(mem->memory); memory_view_set_expression(mem->memory, "0"); debug_view_end_update(mem->memory); // populate the combobox if (!memorycombo) { cursel = item = 0; for (subview = memory_view_get_subview_list(mem->memory); subview != NULL; subview = subview->next) { gtk_combo_box_append_text(mem->zone_w, subview->name); if (cursel == 0 && subview->space != NULL && subview->space->cpu == curcpu) cursel = item; item++; } memory_view_set_subview(mem->memory, cursel); gtk_combo_box_set_active(mem->zone_w, cursel); } g_signal_connect(mem->zone_w, "changed", G_CALLBACK(memorywin_zone_changed), mem); g_signal_connect(lookup_widget(mem->win, "chunks_1"), "activate", G_CALLBACK(on_chunks_1_activate), mem); g_signal_connect(lookup_widget(mem->win, "chunks_2"), "activate", G_CALLBACK(on_chunks_2_activate), mem); g_signal_connect(lookup_widget(mem->win, "chunks_4"), "activate", G_CALLBACK(on_chunks_4_activate), mem); g_signal_connect(lookup_widget(mem->win, "reverse"), "activate", G_CALLBACK(on_reverse_activate), mem); g_signal_connect(lookup_widget(mem->win, "ibpl"), "activate", G_CALLBACK(on_ibpl_activate), mem); g_signal_connect(lookup_widget(mem->win, "dbpl"), "activate", G_CALLBACK(on_dbpl_activate), mem); g_signal_connect(mem->win, "destroy", G_CALLBACK(memorywin_destroy), mem); gtk_widget_show_all(mem->win); }
static void hostapd_cli_interactive(void) { printf("\nInteractive mode\n\n"); eloop_register_signal_terminate(hostapd_cli_eloop_terminate, NULL); edit_init(hostapd_cli_edit_cmd_cb, hostapd_cli_edit_eof_cb, NULL, NULL, NULL, NULL); eloop_register_timeout(ping_interval, 0, hostapd_cli_ping, NULL, NULL); eloop_run(); edit_deinit(NULL, NULL); eloop_cancel_timeout(hostapd_cli_ping, NULL, NULL); }
gboolean edit_add_window (WDialog * h, int y, int x, int lines, int cols, const vfs_path_t * f, long fline) { WEdit *edit; Widget *w; edit = edit_init (NULL, y, x, lines, cols, f, fline); if (edit == NULL) return FALSE; w = WIDGET (edit); w->callback = edit_callback; w->mouse = edit_event; add_widget (h, w); dlg_redraw (h); return TRUE; }
static void disasmwin_new(running_machine &machine) { win_i *dis; int item; //, cursel; device_t *curcpu = debug_cpu_get_visible_cpu(machine); GtkComboBox *cpu_w; astring title; dis = add_win_i(machine, WIN_TYPE_DISASM); dis->win = create_disasmwin(); dis->views[0] = DVIEW(lookup_widget(dis->win, "disasmview")); dview_set_debug_view(dis->views[0], machine, DVT_DISASSEMBLY); cpu_w = GTK_COMBO_BOX(lookup_widget(dis->win, "cpu")); edit_init(&dis->ed, lookup_widget(dis->win, "edit"), "curpc", 1, disasmwin_process_string, dis); downcast<debug_view_disasm *>(dis->views[0]->view)->set_expression("curpc"); // populate the combobox // cursel = 0; item = 0; for (const debug_view_source *source = dis->views[0]->view->source_list().head(); source != NULL; source = source->next()) { gtk_combo_box_append_text(cpu_w, source->name()); item++; } const debug_view_source *source = dis->views[0]->view->source_list().match_device(curcpu); gtk_combo_box_set_active(cpu_w, dis->views[0]->view->source_list().index(*source)); dis->views[0]->view->set_source(*source); title.printf("Disassembly: %s", source->name()); gtk_window_set_title(GTK_WINDOW(dis->win), title); g_signal_connect(cpu_w, "changed", G_CALLBACK(disasmwin_cpu_changed), dis); // g_signal_connect(dis->edit_w, "activate", G_CALLBACK(disasmwin_process_string), dis); g_signal_connect(dis->win, "destroy", G_CALLBACK(disasmwin_destroy), dis); gtk_widget_show_all(dis->win); }
gboolean edit_add_window (Dlg_head * h, int y, int x, int lines, int cols, const vfs_path_t * f, long fline) { WEdit *edit; Widget *w; edit = edit_init (NULL, y, x, lines, cols, f, fline); if (edit == NULL) return FALSE; w = (Widget *) edit; w->callback = edit_callback; w->mouse = edit_event; widget_want_cursor (*w, TRUE); add_widget (h, w); dlg_redraw (h); return TRUE; }
static void memorywin_new(running_machine &machine) { win_i *mem; int item; //, cursel; device_t *curcpu = debug_cpu_get_visible_cpu(machine); GtkComboBox * zone_w; mem = add_win_i(machine, WIN_TYPE_MEMORY); mem->win = create_memorywin(); mem->views[0] = DVIEW(lookup_widget(mem->win, "memoryview")); dview_set_debug_view(mem->views[0], machine, DVT_MEMORY); zone_w = GTK_COMBO_BOX(lookup_widget(mem->win, "zone")); edit_init(&mem->ed, lookup_widget(mem->win, "edit"), "0", 1, memorywin_process_string, mem); downcast<debug_view_memory *>(mem->views[0]->view)->set_expression("0"); // populate the combobox // cursel = 0; item = 0; for (const debug_view_source *source = mem->views[0]->view->source_list().head(); source != NULL; source = source->next()) { gtk_combo_box_append_text(zone_w, source->name()); item++; } const debug_view_source *source = mem->views[0]->view->source_list().match_device(curcpu); gtk_combo_box_set_active(zone_w, mem->views[0]->view->source_list().index(*source)); mem->views[0]->view->set_source(*source); g_signal_connect(zone_w, "changed", G_CALLBACK(memorywin_zone_changed), mem); g_signal_connect(mem->win, "destroy", G_CALLBACK(memorywin_destroy), mem); gtk_widget_show_all(mem->win); }
/* ** curses_setup(exec_name) ** ** Startup ncurses */ void curses_setup( char *exec_name) { int status; static TERMTYPE term; char tty_filename[2048]; tty_init(); /** See if the terminal is in the terminfo data base. This call has two useful benefits, 1) it returns the filename of the terminfo entry, and 2) it searches only terminfo's. This allows us to abort before ncurses starts scanning the termcap file. **/ if ((status = _nc_read_entry(tty_basename, tty_filename, &term)) == 0) { const TERMTYPE *fallback = _nc_fallback(tty_basename); if (fallback) { term = *fallback; sprintf(tty_filename, "(fallback)%s", tty_basename); status = 1; } else { fprintf(stderr, "Terminal not found: TERM=%s\n", tty_basename); show_usage(exec_name); exit(1); } } if (status == -1) { fprintf(stderr, "Terminfo database is inaccessible\n"); exit(1); } /** This call will load the terminfo data base and set the cur-term variable. Only terminals that actually exist will get here so its OK to ignore errors. This is a good thing since ncurses does not permit (os) or (gn) to be set. **/ setupterm(tty_basename, 1, &status); /** Get the current terminal definitions. This must be done before getting the baudrate. **/ _nc_get_curterm(&cur_term->Nttyb); tty_baud_rate = baudrate(); tty_cps = (tty_baud_rate << 1) / tty_frame_size; /* set up the defaults */ replace_mode = TRUE; scan_mode = 0; char_count = 0; select_delay_type = debug_level = 0; char_mask = (meta_on && meta_on[0] == '\0') ? ALLOW_PARITY : STRIP_PARITY; /* Don't change the XON/XOFF modes yet. */ select_xon_xoff = initial_stty_query(TTY_XON_XOFF) ? 1 : needs_xon_xoff; fflush(stdout); /* flush any output */ tty_set(); go_home(); /* set can_go_home */ put_clear(); /* set can_clear_screen */ if (send_reset_init) { reset_init(); } /* I assume that the reset and init strings may not have the correct pads. (Because that part of the test comes much later.) Because of this, I allow the terminal some time to catch up. */ fflush(stdout); /* waste some time */ sleep(1); /* waste more time */ charset_can_test(); can_test("lines cols cr nxon rf if iprog rmp smcup rmcup", FLAG_CAN_TEST); edit_init(); /* initialize the edit data base */ if (send_reset_init && enter_ca_mode) { tc_putp(enter_ca_mode); put_clear(); /* just in case we switched pages */ } put_crlf(); ptext("Using terminfo from: "); ptextln(tty_filename); put_crlf(); if (tty_can_sync == SYNC_NEEDED) { verify_time(); } display_basic(); }
ParameterDialog::ParameterDialog(ParameterData * pa) : TabDialog(0, 0, true, Qt::WA_DeleteOnClose), param(pa) { pa->browser_node->edit_start(); if (pa->browser_node->is_writable()) { setOkButton(tr("OK")); setCancelButton(tr("Cancel")); } else { setOkButton(QString()); setCancelButton(tr("Close")); } visit = !hasOkButton(); setWindowTitle(tr("Parameter dialog")); GridBox * grid; HHBox * htab; QString s; // general tab grid = new GridBox(2, this); umltab = grid; grid->setMargin(5); grid->setSpacing(5); grid->addWidget(new QLabel(tr("name :"), grid)); grid->addWidget(edname = new LineEdit(pa->name(), grid)); edname->setReadOnly(visit); QFont font = edname->font(); if (! hasCodec()) font.setFamily("Courier"); font.setFixedPitch(TRUE); grid->addWidget(new QLabel(tr("stereotype : "), grid)); grid->addWidget(edstereotype = new QComboBox(grid)); edstereotype->setEditable(!visit); edstereotype->addItem(toUnicode(pa->stereotype)); if (! visit) { edstereotype->addItems(BrowserParameter::default_stereotypes()); edstereotype->addItems(ProfiledStereotypes::defaults(UmlParameter)); edstereotype->setAutoCompletion(completion()); } edstereotype->setCurrentIndex(0); QSizePolicy sp = edstereotype->sizePolicy(); sp.setHorizontalPolicy(QSizePolicy::Expanding); edstereotype->setSizePolicy(sp); SmallPushButton* sButton; connect(sButton = new SmallPushButton(tr("type :"), grid), SIGNAL(clicked()), this, SLOT(menu_type())); grid->addWidget(sButton); grid->addWidget(edtype = new QComboBox( grid)); edtype->setEditable(!visit); edtype->addItem(pa->get_type().get_full_type()); if (!visit) { BrowserClass::instances(nodes); nodes.full_names(list); edtype->addItems(GenerationSettings::basic_types()); offset = edtype->count(); edtype->addItems(list); edtype->setAutoCompletion(completion()); view = pa->browser_node->container(UmlClass); } edtype->setCurrentIndex(0); edtype->setSizePolicy(sp); grid->addWidget(new QLabel(tr("direction :"), grid)); grid->addWidget(htab = new HHBox(grid)); htab->addWidget(eddir = new QComboBox(htab)); UmlParamDirection dir = pa->get_dir(); eddir->addItem(stringify(dir)); if (! visit) { if (dir != UmlInOut) eddir->addItem(stringify(UmlInOut)); if (dir != UmlIn) eddir->addItem(stringify(UmlIn)); if (dir != UmlOut) eddir->addItem(stringify(UmlOut)); if (dir != UmlReturn) eddir->addItem(stringify(UmlReturn)); } htab->addWidget(new QLabel(tr(" multiplicity : "), htab)); htab->addWidget( edmultiplicity = new QComboBox(htab)); edmultiplicity->setEditable(!visit); edmultiplicity->setSizePolicy(sp); edmultiplicity->addItem(pa->get_multiplicity()); if (!visit) { edmultiplicity->addItem("1"); edmultiplicity->addItem("0..1"); edmultiplicity->addItem("*"); edmultiplicity->addItem("1..*"); } htab->addWidget(new QLabel(tr(" ordering : "), htab)); htab->addWidget(edordering = new QComboBox(htab)); UmlOrderingKind o = pa->get_ordering(); edordering->addItem(stringify(o)); if (!visit) { if (o != UmlUnordered) edordering->addItem(stringify(UmlUnordered)); if (o != UmlOrdered) edordering->addItem(stringify(UmlOrdered)); if (o != UmlLifo) edordering->addItem(stringify(UmlLifo)); if (o != UmlFifo) edordering->addItem(stringify(UmlFifo)); } htab->addWidget(new QLabel(tr(" effect : "), htab)); htab->addWidget(edeffect = new QComboBox(htab)); UmlParamEffect e = pa->get_effect(); edeffect->addItem(stringify(e)); if (!visit) { if (e != UmlNoEffect) edeffect->addItem(stringify(UmlNoEffect)); if (e != UmlCreate) edeffect->addItem(stringify(UmlCreate)); if (e != UmlRead) edeffect->addItem(stringify(UmlRead)); if (e != UmlUpdate) edeffect->addItem(stringify(UmlUpdate)); if (e != UmlDelete) edeffect->addItem(stringify(UmlDelete)); } grid->addWidget(new QLabel(tr("in state : "), grid)); grid->addWidget(edin_state = new LineEdit(pa->in_state, grid)); edin_state->setReadOnly(visit); grid->addWidget(new QLabel(tr("default value :"), grid)); grid->addWidget(htab = new HHBox(grid)); htab->addWidget(edinit = new LineEdit(pa->get_default_value(), htab)); if (visit) { edinit->setReadOnly(TRUE); } else { connect(sButton = new SmallPushButton(tr("Editor"), htab), SIGNAL(clicked()), this, SLOT(edit_init())); htab->addWidget(sButton); } grid->addWidget(new QLabel(grid)); grid->addWidget(htab = new HHBox(grid)); BButtonGroup * bg ; htab->addWidget( bg = new BButtonGroup(2, Qt::Horizontal, QString(), htab)); bg->addWidget(is_control_cb = new QCheckBox(tr("is_control"), bg)); if (pa->is_control) is_control_cb->setChecked(TRUE); is_control_cb->setDisabled(visit); bg->addWidget(unique_cb = new QCheckBox(tr("unique"), bg)); if (pa->unique) unique_cb->setChecked(TRUE); unique_cb->setDisabled(visit); htab->addWidget(bg = new BButtonGroup(3, Qt::Horizontal, QString(), htab)); bg->setExclusive(TRUE); bg->addWidget(standard_rb = new QRadioButton(tr("standard"), bg)); bg->addWidget(exception_rb = new QRadioButton(tr("exception"), bg)); bg->addWidget(stream_rb = new QRadioButton(tr("stream"), bg)); if (pa->exception) exception_rb->setChecked(TRUE); else if (pa->stream) stream_rb->setChecked(TRUE); else standard_rb->setChecked(TRUE); VVBox * vtab; grid->addWidget(vtab = new VVBox(grid)); vtab->addWidget(new QLabel(tr("description :"), vtab)); if (! visit) { connect(sButton = new SmallPushButton(tr("Editor"), vtab), SIGNAL(clicked()), this, SLOT(edit_description())); vtab->addWidget(sButton); } grid->addWidget(comment = new MultiLineEdit(grid)); comment->setReadOnly(visit); comment->setText(pa->browser_node->get_comment()); comment->setFont(font); addTab(grid, "Uml"); init_tab(ocltab, eduml_selection, pa->uml_selection, "Ocl", SLOT(edit_uml_selection()), TRUE); // C++ init_tab(cppTab, edcpp_selection, pa->cpp_selection, "C++", SLOT(edit_cpp_selection()), GenerationSettings::cpp_get_default_defs()); // Java init_tab(javatab, edjava_selection, pa->java_selection, "Java", SLOT(edit_java_selection()), GenerationSettings::java_get_default_defs()); // USER : list key - value grid = new GridBox(2, this); grid->setMargin(5); grid->setSpacing(5); grid->addWidget(kvtable = new KeyValuesTable(pa->browser_node, grid, visit)); addTab(grid, tr("Properties")); // connect(this, SIGNAL(currentChanged(QWidget *)), this, SLOT(change_tabs(QWidget *))); open_dialog(this); }
AttributeDialog::AttributeDialog(AttributeData * a, bool new_st_attr) : Q3TabDialog(0, 0, FALSE, Qt::WDestructiveClose), new_in_st(new_st_attr), att(a) { a->browser_node->edit_start(); if (a->browser_node->is_writable()) { setOkButton(TR("OK")); setCancelButton(TR("Cancel")); } else { setOkButton(QString::null); setCancelButton(TR("Close")); } visit = !hasOkButton(); ClassData * cld = (ClassData *) ((BrowserNode *) a->browser_node->parent())->get_data(); QString stereotype = cld->get_stereotype(); QString lang_st; in_enum = (stereotype == "enum"); lang_st = GenerationSettings::cpp_class_stereotype(stereotype); cpp_in_enum = in_enum || (lang_st == "enum"); cpp_ignored = !cpp_in_enum && ((lang_st == "typedef") || (lang_st == "ignored")); lang_st = GenerationSettings::java_class_stereotype(stereotype); java_in_enum = in_enum || (lang_st == "enum"); java_in_enum_pattern = !java_in_enum && (lang_st == "enum_pattern"); java_ignored = (lang_st == "ignored"); lang_st = GenerationSettings::php_class_stereotype(stereotype); php_in_enum = in_enum || (lang_st == "enum"); php_ignored = !php_in_enum && (lang_st == "ignored"); lang_st = GenerationSettings::python_class_stereotype(stereotype); python_in_enum = in_enum || (lang_st == "enum"); python_ignored = !python_in_enum && (lang_st == "ignored"); lang_st = GenerationSettings::idl_class_stereotype(stereotype); idl_in_enum = in_enum || (lang_st == "enum"); idl_in_typedef = !idl_in_enum && (lang_st == "typedef"); idl_in_struct = !idl_in_enum && ((lang_st == "struct") || (lang_st == "exception")); idl_in_union = !idl_in_enum && (lang_st == "union"); setCaption((in_enum || java_in_enum_pattern) ? TR("Enum item dialog") : TR("Attribute dialog")); Q3Grid * grid; Q3HBox * htab; QString s; // general tab grid = new Q3Grid(2, this); umltab = grid; grid->setMargin(5); grid->setSpacing(5); new QLabel(TR("class : "), grid); new QLabel(((BrowserNode *) a->get_browser_node()->parent())->full_name(TRUE), grid); new QLabel(TR("name :"), grid); edname = new LineEdit(a->name(), grid); edname->setReadOnly(visit); QFont font = edname->font(); if (! hasCodec()) font.setFamily("Courier"); font.setFixedPitch(TRUE); if (!java_in_enum_pattern) { new QLabel(TR("stereotype :"), grid); htab = new Q3HBox(grid); edstereotype = new Q3ComboBox(!visit, htab); edstereotype->insertItem(toUnicode(a->get_stereotype())); if (!visit) { edstereotype->insertStringList(BrowserAttribute::default_stereotypes()); edstereotype->insertStringList(ProfiledStereotypes::defaults(UmlAttribute)); if (java_in_enum) { int n = edstereotype->count(); for (attribute_st_rank = 0; attribute_st_rank != n; attribute_st_rank += 1) if (edstereotype->text(attribute_st_rank) == "attribute") break; if (attribute_st_rank == n) { edstereotype->insertItem("attribute"); n += 1; } for (empty_st_rank = 0; empty_st_rank != n; empty_st_rank += 1) if (edstereotype->text(empty_st_rank).isEmpty()) break; if (empty_st_rank == n) edstereotype->insertItem(""); } edstereotype->setAutoCompletion(completion()); } edstereotype->setCurrentItem(0); QSizePolicy sp = edstereotype->sizePolicy(); sp.setHorData(QSizePolicy::Expanding); edstereotype->setSizePolicy(sp); new QLabel(TR(" multiplicity : "), htab); multiplicity = new Q3ComboBox(!visit, htab); multiplicity->setSizePolicy(sp); previous_multiplicity = a->get_multiplicity(); multiplicity->insertItem(previous_multiplicity); if (!visit) { multiplicity->insertItem("1"); multiplicity->insertItem("0..1"); multiplicity->insertItem("*"); multiplicity->insertItem("1..*"); } connect(new SmallPushButton(TR("type :"), grid), SIGNAL(clicked()), this, SLOT(menu_type())); edtype = new Q3ComboBox(!visit, grid); edtype->insertItem(a->get_type().get_full_type()); BrowserClass::instances(nodes); nodes.full_names(list); if (!visit) { QStringList l = GenerationSettings::basic_types(); cld->addFormals(l); edtype->insertStringList(l); offset = edtype->count(); edtype->insertStringList(list); edtype->setAutoCompletion(completion()); view = a->browser_node->container(UmlClass); } edtype->setCurrentItem(0); edtype->setSizePolicy(sp); new QLabel(TR("initial value :"), grid); } else { multiplicity = 0; new QLabel(TR("value :"), grid); } htab = new Q3HBox(grid); edinit = new LineEdit(a->get_init_value(), htab); if (visit) edinit->setReadOnly(TRUE); else connect(new SmallPushButton(TR("Editor"), htab), SIGNAL(clicked()), this, SLOT(edit_init())); Q3ButtonGroup * bg; if (!java_in_enum_pattern) { new QLabel(grid); htab = new Q3HBox(grid); bg = uml_visibility.init(htab, a->get_uml_visibility(), TRUE); if (visit) bg->setEnabled(FALSE); bg = new Q3ButtonGroup(7, Qt::Horizontal, QString::null, htab); bg->setExclusive(FALSE); classattribute_cb = new QCheckBox("static", bg); if (a->get_isa_class_attribute()) classattribute_cb->setChecked(TRUE); classattribute_cb->setDisabled(visit); volatile_cb = new QCheckBox("volatile", bg); if (a->isa_volatile_attribute) volatile_cb->setChecked(TRUE); volatile_cb->setDisabled(visit); constattribute_cb = new QCheckBox(TR("read-only"), bg); if (a->get_isa_const_attribute()) constattribute_cb->setChecked(TRUE); constattribute_cb->setDisabled(visit); derived_cb = new QCheckBox(TR("derived"), bg); if (a->get_is_derived()) derived_cb->setChecked(TRUE); derived_cb->setDisabled(visit); connect(derived_cb, SIGNAL(toggled(bool)), SLOT(derived_changed(bool))); derivedunion_cb = new QCheckBox("union", bg); if (a->get_is_derivedunion()) derivedunion_cb->setChecked(TRUE); derivedunion_cb->setDisabled(visit || !derived_cb->isChecked()); ordered_cb = new QCheckBox(TR("ordered"), bg); if (a->get_is_ordered()) ordered_cb->setChecked(TRUE); ordered_cb->setDisabled(visit); unique_cb = new QCheckBox("unique", bg); if (a->get_is_unique()) unique_cb->setChecked(TRUE); unique_cb->setDisabled(visit); } Q3VBox * vtab = new Q3VBox(grid); new QLabel(TR("description :"), vtab); if (! visit) { connect(new SmallPushButton(TR("Editor"), vtab), SIGNAL(clicked()), this, SLOT(edit_description())); connect(new SmallPushButton(TR("Default"), vtab), SIGNAL(clicked()), this, SLOT(default_description())); } comment = new MultiLineEdit(grid); comment->setReadOnly(visit); comment->setText(a->browser_node->get_comment()); comment->setFont(font); vtab = new Q3VBox(grid); new QLabel(TR("constraint :"), vtab); if (! visit) { connect(new SmallPushButton(TR("Editor"), vtab), SIGNAL(clicked()), this, SLOT(edit_constraint())); } constraint = new MultiLineEdit(grid); constraint->setReadOnly(visit); constraint->setText(a->constraint); constraint->setFont(font); addTab(grid, "Uml"); // C++ if (! cpp_ignored) { grid = new Q3Grid(2, this); cpptab = grid; grid->setMargin(5); grid->setSpacing(5); if (!cpp_in_enum) { new QLabel(TR("Visibility :"), grid); htab = new Q3HBox(grid); Q3ButtonGroup * bg = cpp_visibility.init(htab, a->get_cpp_visibility(), FALSE, 0, TR("follow uml")); if (visit) bg->setEnabled(FALSE); new QLabel(" ", htab); mutable_cb = new QCheckBox("mutable", htab); if (a->cpp_mutable) mutable_cb->setChecked(TRUE); if (visit) mutable_cb->setDisabled(TRUE); else connect(mutable_cb, SIGNAL(toggled(bool)), this, SLOT(cpp_update())); }
static void mode_edit(int fd, int page, int edit, int argc, char *argv[]) { int i; u_char data[255]; u_char *mode_pars; struct mode_header { u_char mdl; /* Mode data length */ u_char medium_type; u_char dev_spec_par; u_char bdl; /* Block descriptor length */ }; struct mode_page_header { u_char page_code; u_char page_length; }; struct mode_header *mh; struct mode_page_header *mph; char *fmt = mode_lookup(page); if (!fmt && verbose) { fprintf(stderr, "No mode data base entry in \"%s\" for page %d; binary %s only.\n", mode_db, page, (edit ? "edit" : "display")); } if (edit) { if (!fmt) { fprintf(stderr, "Sorry: can't edit without a format.\n"); exit(1); } if (pagectl != 0 && pagectl != 3) { fprintf(stderr, "It only makes sense to edit page 0 (current) or page 3 (saved values)\n"); exit(1); } verbose = 1; mode_sense(fd, data, sizeof(data), 1, page); mh = (struct mode_header *)data; mph = (struct mode_page_header *) (((char *)mh) + sizeof(*mh) + mh->bdl); mode_pars = (char *)mph + sizeof(*mph); edit_init(); scsireq_buff_decode_visit(mode_pars, mh->mdl, fmt, edit_check, 0); mode_sense(fd, data, sizeof(data), 0, page); edit_rewind(); scsireq_buff_decode_visit(mode_pars, mh->mdl, fmt, edit_defaults, 0); edit_rewind(); scsireq_buff_decode_visit(mode_pars, mh->mdl, fmt, edit_report, 0); fclose(edit_file); if (editit(edit_name) == -1 && errno != ECHILD) err(1, "edit %s", edit_name); if ((edit_file = fopen(edit_name, "r")) == NULL) err(1, "open %s", edit_name); edit_rewind(); scsireq_buff_encode_visit(mode_pars, mh->mdl, fmt, edit_get, 0); /* Eliminate block descriptors: */ bcopy((char *)mph, ((char *)mh) + sizeof(*mh), sizeof(*mph) + mph->page_length); mh->bdl = 0; mph = (struct mode_page_header *) (((char *)mh) + sizeof(*mh)); mode_pars = ((char *)mph) + 2; #if 0 /* Turn this on to see what you're sending to the * device: */ edit_rewind(); scsireq_buff_decode_visit(mode_pars, mh->mdl, fmt, arg_put, 0); #endif edit_done(); /* Make it permanent if pageselect is three. */ mph->page_code &= ~0xC0; /* Clear PS and RESERVED */ mh->mdl = 0; /* Reserved for mode select */ mode_select(fd, (char *)mh, sizeof(*mh) + mh->bdl + sizeof(*mph) + mph->page_length, (pagectl == 3)); exit(0); } mode_sense(fd, data, sizeof(data), pagectl, page); /* Skip over the block descriptors. */ mh = (struct mode_header *)data; mph = (struct mode_page_header *)(((char *)mh) + sizeof(*mh) + mh->bdl); mode_pars = (char *)mph + sizeof(*mph); if (!fmt) { for (i = 0; i < mh->mdl; i++) { printf("%02x%c",mode_pars[i], (((i + 1) % 8) == 0) ? '\n' : ' '); } putc('\n', stdout); } else { verbose = 1; scsireq_buff_decode_visit(mode_pars, mh->mdl, fmt, arg_put, 0); } }