-
-#ifdef _WIN32
-extern void PositionWindowOnPrimaryScreen(window_position_t& position);
-#endif
-
-void GroupDlg::Create ()
-{
- if (m_pWidget != NULL)
- return;
-
- GtkWidget* dlg = gtk_window_new (GTK_WINDOW_TOPLEVEL);
-
-#ifdef _WIN32
- if( g_PrefsDlg.m_bStartOnPrimMon ) {
- PositionWindowOnPrimaryScreen( g_PrefsDlg.mWindowInfo.posEntityWnd );
- }
-#endif
- load_window_pos (dlg, g_PrefsDlg.mWindowInfo.posEntityWnd);
-
- gtk_window_set_title (GTK_WINDOW (dlg), "Entities");
- gtk_signal_connect (GTK_OBJECT (dlg), "delete_event", GTK_SIGNAL_FUNC (widget_delete_hide), NULL);
- // catch 'Esc'
- gtk_signal_connect (GTK_OBJECT (dlg), "key_press_event", GTK_SIGNAL_FUNC (OnDialogKey), NULL);
- gtk_window_set_transient_for (GTK_WINDOW (dlg), GTK_WINDOW (g_pParentWnd->m_pWidget));
- g_qeglobals_gui.d_entity = dlg;
-
- {
- GtkWidget* notebook = gtk_notebook_new ();
- gtk_widget_show (notebook);
- gtk_container_add (GTK_CONTAINER (dlg), notebook);
- gtk_notebook_set_tab_pos (GTK_NOTEBOOK (notebook), GTK_POS_BOTTOM);
- m_pNotebook = notebook;
-
- {
- GtkWidget* vbox = gtk_vbox_new (FALSE, 2);
- gtk_widget_show (vbox);
- gtk_container_set_border_width (GTK_CONTAINER (vbox), 2);
-
- {
- GtkWidget* label = gtk_label_new ("Entities");
- gtk_widget_show (label);
- gtk_notebook_append_page (GTK_NOTEBOOK (notebook), vbox, label);
- }
-
- {
- GtkWidget* split1 = gtk_vpaned_new ();
- gtk_box_pack_start (GTK_BOX (vbox), split1, TRUE, TRUE, 0);
- gtk_widget_show (split1);
-
- {
- GtkWidget* split2 = gtk_vpaned_new ();
- gtk_paned_add1 (GTK_PANED (split1), split2);
- gtk_widget_show (split2);
-
- g_object_set_data (G_OBJECT (dlg), "split1", split1);
- g_object_set_data (G_OBJECT (dlg), "split2", split2);
-
- {
- GtkWidget* vbox2 = gtk_vbox_new (FALSE, 2);
- gtk_widget_show (vbox2);
- gtk_paned_pack2 (GTK_PANED (split1), vbox2, FALSE, FALSE);
-
- {
- GtkWidget* scr = gtk_scrolled_window_new (NULL, NULL);
- gtk_widget_show (scr);
- gtk_paned_add1 (GTK_PANED (split2), scr);
- gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scr), GTK_POLICY_NEVER, GTK_POLICY_ALWAYS);
- gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(scr), GTK_SHADOW_IN);
-
- {
- GtkListStore* store = gtk_list_store_new(2, G_TYPE_STRING, G_TYPE_POINTER);
-
- GtkWidget* view = gtk_tree_view_new_with_model(GTK_TREE_MODEL(store));
- gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(view), FALSE);
- g_signal_connect(G_OBJECT(view), "button_press_event", G_CALLBACK(eclasslist_button_press), NULL);
- g_signal_connect(G_OBJECT(view), "key_press_event", G_CALLBACK(eclasslist_keypress), this);
-
- {
- GtkCellRenderer* renderer = gtk_cell_renderer_text_new();
- GtkTreeViewColumn* column = gtk_tree_view_column_new_with_attributes("Key", renderer, "text", 0, NULL);
- gtk_tree_view_append_column(GTK_TREE_VIEW(view), column);
- }
-
- {
- GtkTreeSelection* selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(view));
- g_signal_connect(G_OBJECT(selection), "changed", G_CALLBACK(eclasslist_selection_changed), dlg);
- }
-
- gtk_widget_show(view);
-
- gtk_container_add(GTK_CONTAINER (scr), view);
-
- g_object_unref(G_OBJECT(store));
- EntWidgets[EntList] = view;
- g_entlist_store = store;
- }
- }
-
- {
- GtkWidget* scr = gtk_scrolled_window_new (NULL, NULL);
- gtk_widget_show (scr);
- gtk_paned_add2 (GTK_PANED (split2), scr);
- gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scr), GTK_POLICY_NEVER, GTK_POLICY_ALWAYS);
- gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(scr), GTK_SHADOW_IN);
-
- {
- GtkWidget* text = gtk_text_view_new();
- gtk_widget_set_size_request(text, 0, -1); // allow shrinking
- gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(text), GTK_WRAP_WORD);
- gtk_text_view_set_editable(GTK_TEXT_VIEW(text), FALSE);
- gtk_widget_show (text);
- gtk_container_add (GTK_CONTAINER (scr), text);
- EntWidgets[EntComment] = text;
- }
- }
-
- {
- // Spawnflags (4 colums wide max, or window gets too wide.)
- GtkWidget* table = LayoutTable = gtk_table_new (4, 4, FALSE);
- gtk_box_pack_start (GTK_BOX (vbox2), LayoutTable, FALSE, TRUE, 0);
- gtk_widget_show(LayoutTable);
-
- for (int i = 0; i < MAX_FLAGS; i++)
- {
- GtkWidget* check = gtk_check_button_new_with_label ("");
- gtk_widget_ref (check);
- gtk_signal_connect (GTK_OBJECT (check), "toggled", GTK_SIGNAL_FUNC (entity_check), NULL);
- EntWidgets[EntCheck1+i] = check;
- }
-
- //++timo cleanme: these flags where Q2 stuff
- /*
- check = gtk_check_button_new_with_label ("!Easy");
- gtk_widget_show (check);
- gtk_signal_connect (GTK_OBJECT (check), "toggled", GTK_SIGNAL_FUNC (entity_check), NULL);
- gtk_table_attach (GTK_TABLE (table), check, 2, 3, 0, 1,
- (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
- (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0);
- EntWidgets[EntCheck17] = check;
-
- check = gtk_check_button_new_with_label ("!Medium");
- gtk_widget_show (check);
- gtk_signal_connect (GTK_OBJECT (check), "toggled", GTK_SIGNAL_FUNC (entity_check), NULL);
- gtk_table_attach (GTK_TABLE (table), check, 2, 3, 1, 2,
- (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
- (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0);
- EntWidgets[EntCheck18] = check;
-
- check = gtk_check_button_new_with_label ("!Hard");
- gtk_widget_show (check);
- gtk_signal_connect (GTK_OBJECT (check), "toggled", GTK_SIGNAL_FUNC (entity_check), NULL);
- gtk_table_attach (GTK_TABLE (table), check, 2, 3, 2, 3,
- (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
- (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0);
- EntWidgets[EntCheck19] = check;
-
- check = gtk_check_button_new_with_label ("!DeathMatch");
- gtk_widget_show (check);
- gtk_signal_connect (GTK_OBJECT (check), "toggled", GTK_SIGNAL_FUNC (entity_check), NULL);
- gtk_table_attach (GTK_TABLE (table), check, 2, 3, 3, 4,
- (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
- (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0);
- EntWidgets[EntCheck20] = check;
- */
- }
-
- {
- GtkWidget* scr = gtk_scrolled_window_new (NULL, NULL);
- gtk_widget_show (scr);
- gtk_box_pack_start (GTK_BOX (vbox2), scr, TRUE, TRUE, 0);
- gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scr), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
- gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(scr), GTK_SHADOW_IN);
-
- {
- GtkListStore* store = gtk_list_store_new(2, G_TYPE_STRING, G_TYPE_STRING);
-
- GtkWidget* view = gtk_tree_view_new_with_model(GTK_TREE_MODEL(store));
- gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(view), FALSE);
-
- {
- GtkCellRenderer* renderer = gtk_cell_renderer_text_new();
- GtkTreeViewColumn* column = gtk_tree_view_column_new_with_attributes("", renderer, "text", 0, NULL);
- gtk_tree_view_append_column(GTK_TREE_VIEW(view), column);
- }
-
- {
- GtkCellRenderer* renderer = gtk_cell_renderer_text_new();
- GtkTreeViewColumn* column = gtk_tree_view_column_new_with_attributes("", renderer, "text", 1, NULL);
- gtk_tree_view_append_column(GTK_TREE_VIEW(view), column);
- }
-
- {
- GtkTreeSelection* selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(view));
- g_signal_connect(G_OBJECT(selection), "changed", G_CALLBACK(proplist_selection_changed), dlg);
- }
-
- gtk_widget_show(view);
-
- gtk_container_add(GTK_CONTAINER (scr), view);
-
- g_object_unref(G_OBJECT(store));
-
- EntWidgets[EntProps] = view;
- g_entprops_store = store;
- }
- }
- }
-
- int x = g_PrefsDlg.mWindowInfo.nEntitySplit1;
- if (x != -1)
- {
- gtk_paned_set_position (GTK_PANED (split1), x);
-
- while (gtk_events_pending ()) gtk_main_iteration ();
- x = g_PrefsDlg.mWindowInfo.nEntitySplit2;
-
- if (x != -1)
- gtk_paned_set_position (GTK_PANED (split2), x);
- }
- }
- }
-
- {
- GtkWidget* table = gtk_table_new (2, 2, FALSE);
- gtk_widget_show (table);
- gtk_box_pack_start (GTK_BOX (vbox), table, FALSE, TRUE, 0);
- gtk_table_set_row_spacings (GTK_TABLE (table), 3);
- gtk_table_set_col_spacings (GTK_TABLE (table), 5);
-
- {
- GtkWidget* entry = gtk_entry_new ();
- gtk_widget_show (entry);
- gtk_table_attach (GTK_TABLE (table), entry, 1, 2, 0, 1,
- (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
- (GtkAttachOptions) (0), 0, 0);
- gtk_widget_set_events (entry, GDK_KEY_PRESS_MASK);
- gtk_signal_connect (GTK_OBJECT (entry), "key_press_event",
- GTK_SIGNAL_FUNC (entityentry_keypress), this);
- EntWidgets[EntKeyField] = entry;
- }
-
- {
- GtkWidget* entry = gtk_entry_new ();
- gtk_widget_show (entry);
- gtk_table_attach (GTK_TABLE (table), entry, 1, 2, 1, 2,
- (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
- (GtkAttachOptions) (0), 0, 0);
- gtk_widget_set_events (entry, GDK_KEY_PRESS_MASK);
- gtk_signal_connect (GTK_OBJECT (entry), "key_press_event",
- GTK_SIGNAL_FUNC (entityentry_keypress), this);
- EntWidgets[EntValueField] = entry;
- }
-
- {
- GtkWidget* label = gtk_label_new ("Value");
- gtk_widget_show (label);
- gtk_table_attach (GTK_TABLE (table), label, 0, 1, 1, 2,
- (GtkAttachOptions) (GTK_FILL),
- (GtkAttachOptions) (0), 0, 0);
- gtk_misc_set_alignment (GTK_MISC (label), 0, 0.5);
- }
-
- {
- GtkWidget* label = gtk_label_new ("Key");
- gtk_widget_show (label);
- gtk_table_attach (GTK_TABLE (table), label, 0, 1, 0, 1,
- (GtkAttachOptions) (GTK_FILL),
- (GtkAttachOptions) (0), 0, 0);
- gtk_misc_set_alignment (GTK_MISC (label), 0, 0.5);
- }
- }
-
- {
- GtkWidget* hbox = gtk_hbox_new (FALSE, 5);
- gtk_widget_show (hbox);
- gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, TRUE, 0);
-
- {
- GtkWidget* table = gtk_table_new (3, 3, TRUE);
- gtk_widget_show (table);
- gtk_box_pack_start (GTK_BOX (hbox), table, FALSE, TRUE, 0);
-
- {
- GtkWidget* button = gtk_button_new_with_label ("360");
- gtk_widget_show (button);
- gtk_signal_connect (GTK_OBJECT (button), "clicked", GTK_SIGNAL_FUNC (entitylist_angle), (void *)"360");
- gtk_table_attach (GTK_TABLE (table), button, 2, 3, 1, 2,
- (GtkAttachOptions) (GTK_FILL),
- (GtkAttachOptions) (GTK_FILL), 0, 0);
- }
-
- {
- GtkWidget* button = gtk_button_new_with_label ("45");
- gtk_widget_show (button);
- gtk_signal_connect (GTK_OBJECT (button), "clicked", GTK_SIGNAL_FUNC (entitylist_angle), (void *)"45");
- gtk_table_attach (GTK_TABLE (table), button, 2, 3, 0, 1,
- (GtkAttachOptions) (GTK_FILL),
- (GtkAttachOptions) (GTK_FILL), 0, 0);
- }
-
- {
- GtkWidget* button = gtk_button_new_with_label ("90");
- gtk_widget_show (button);
- gtk_signal_connect (GTK_OBJECT (button), "clicked", GTK_SIGNAL_FUNC (entitylist_angle), (void *)"90");
- gtk_table_attach (GTK_TABLE (table), button, 1, 2, 0, 1,
- (GtkAttachOptions) (GTK_FILL),
- (GtkAttachOptions) (GTK_FILL), 0, 0);
- }
-
-
- {
- GtkWidget* button = gtk_button_new_with_label ("135");
- gtk_widget_show (button);
- gtk_signal_connect (GTK_OBJECT (button), "clicked", GTK_SIGNAL_FUNC (entitylist_angle), (void *)"135");
- gtk_table_attach (GTK_TABLE (table), button, 0, 1, 0, 1,
- (GtkAttachOptions) (GTK_FILL),
- (GtkAttachOptions) (GTK_FILL), 0, 0);
- }
-
- {
- GtkWidget* button = gtk_button_new_with_label ("180");
- gtk_widget_show (button);
- gtk_signal_connect (GTK_OBJECT (button), "clicked", GTK_SIGNAL_FUNC (entitylist_angle), (void *)"180");
- gtk_table_attach (GTK_TABLE (table), button, 0, 1, 1, 2,
- (GtkAttachOptions) (GTK_FILL),
- (GtkAttachOptions) (GTK_FILL), 0, 0);
- }
-
- {
- GtkWidget* button = gtk_button_new_with_label ("225");
- gtk_widget_show (button);
- gtk_signal_connect (GTK_OBJECT (button), "clicked", GTK_SIGNAL_FUNC (entitylist_angle), (void *)"225");
- gtk_table_attach (GTK_TABLE (table), button, 0, 1, 2, 3,
- (GtkAttachOptions) (GTK_FILL),
- (GtkAttachOptions) (GTK_FILL), 0, 0);
- }
-
- {
- GtkWidget* button = gtk_button_new_with_label ("270");
- gtk_widget_show (button);
- gtk_signal_connect (GTK_OBJECT (button), "clicked", GTK_SIGNAL_FUNC (entitylist_angle), (void *)"270");
- gtk_table_attach (GTK_TABLE (table), button, 1, 2, 2, 3,
- (GtkAttachOptions) (GTK_FILL),
- (GtkAttachOptions) (GTK_FILL), 0, 0);
- }
-
- {
- GtkWidget* button = gtk_button_new_with_label ("315");
- gtk_widget_show (button);
- gtk_signal_connect (GTK_OBJECT (button), "clicked", GTK_SIGNAL_FUNC (entitylist_angle), (void *)"315");
- gtk_table_attach (GTK_TABLE (table), button, 2, 3, 2, 3,
- (GtkAttachOptions) (GTK_FILL),
- (GtkAttachOptions) (GTK_FILL), 0, 0);
- }
- }
-
- {
- GtkWidget* vbox2 = gtk_vbox_new (FALSE, 0);
- gtk_widget_show (vbox2);
- gtk_box_pack_start (GTK_BOX (hbox), vbox2, TRUE, TRUE, 0);
-
- {
- GtkWidget* button = gtk_button_new_with_label ("Reset");
- gtk_widget_show (button);
- gtk_signal_connect (GTK_OBJECT (button), "clicked", GTK_SIGNAL_FUNC (ResetEntity), NULL);
- gtk_box_pack_start (GTK_BOX (vbox2), button, FALSE, FALSE, 0);
- }
-
- {
- GtkWidget* button = gtk_button_new_with_label ("Up");
- gtk_widget_show (button);
- gtk_signal_connect (GTK_OBJECT (button), "clicked", GTK_SIGNAL_FUNC (entitylist_angle), (void *)"-1");
- gtk_box_pack_start (GTK_BOX (vbox2), button, FALSE, FALSE, 0);
- }
-
- {
- GtkWidget* button = gtk_button_new_with_label ("Dn");
- gtk_widget_show (button);
- gtk_signal_connect (GTK_OBJECT (button), "clicked", GTK_SIGNAL_FUNC (entitylist_angle), (void *)"-2");
- gtk_box_pack_start (GTK_BOX (vbox2), button, FALSE, FALSE, 0);
- }
- }
-
- {
- GtkWidget* vbox2 = gtk_vbox_new (FALSE, 0);
- gtk_widget_show (vbox2);
- gtk_box_pack_start (GTK_BOX (hbox), vbox2, TRUE, TRUE, 0);
-
- {
- GtkWidget* button = gtk_button_new_with_label ("Del Key/Pair");
- gtk_widget_show (button);
- gtk_signal_connect (GTK_OBJECT (button), "clicked", GTK_SIGNAL_FUNC (DelProp), NULL);
- gtk_box_pack_start (GTK_BOX (vbox2), button, FALSE, FALSE, 0);
- }
-
- {
- GtkWidget* button = gtk_button_new_with_label ("Sound...");
- gtk_widget_show (button);
- gtk_signal_connect (GTK_OBJECT (button), "clicked", GTK_SIGNAL_FUNC (AssignSound), NULL);
- gtk_box_pack_start (GTK_BOX (vbox2), button, FALSE, FALSE, 0);
- }
-
- {
- GtkWidget* button = gtk_button_new_with_label ("Model...");
- gtk_widget_show (button);
- gtk_signal_connect (GTK_OBJECT (button), "clicked", GTK_SIGNAL_FUNC (AssignModel), NULL);
- gtk_box_pack_start (GTK_BOX (vbox2), button, FALSE, FALSE, 0);
- }
- }
- }
- }
-
- if (g_pParentWnd->FloatingGroupDialog())
- {
- {
- GtkWidget* scr = gtk_scrolled_window_new (NULL, NULL);
- gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scr), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
- gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(scr), GTK_SHADOW_IN);
- gtk_widget_show (scr);
- gtk_container_set_border_width (GTK_CONTAINER (scr), 3);
-
- {
- GtkWidget* text = gtk_text_view_new ();
- gtk_widget_set_size_request(text, 0, -1); // allow shrinking
- gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(text), GTK_WRAP_WORD);
- gtk_text_view_set_editable (GTK_TEXT_VIEW(text), FALSE);
- gtk_container_add (GTK_CONTAINER (scr), text);
- gtk_widget_show (text);
- g_qeglobals_gui.d_edit = text;
- }
-
- {
- GtkWidget* label = gtk_label_new ("Console");
- gtk_widget_show (label);
- gtk_notebook_append_page (GTK_NOTEBOOK (notebook), scr, label);
- }
- }
- }
-
-
- //++timo NOTE: this part for grouping code, don't remove! (we'll put it back in sometime soon)
-
- /*
- vbox = gtk_vbox_new (FALSE, 5);
- gtk_widget_show (vbox);
- gtk_container_set_border_width (GTK_CONTAINER (vbox), 3);
-
- scr = gtk_scrolled_window_new (NULL, NULL);
- gtk_widget_show (scr);
- gtk_box_pack_start (GTK_BOX (vbox), scr, TRUE, TRUE, 0);
- gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scr), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
-
- ctree = gtk_ctree_new (1, 0);
- gtk_widget_show (ctree);
- gtk_container_add (GTK_CONTAINER (scr), ctree);
- gtk_clist_column_titles_hide (GTK_CLIST (ctree));
- m_pTree = ctree;
-
- hbox = gtk_hbox_new (FALSE, 5);
- gtk_widget_show (hbox);
- gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, TRUE, 0);
-
- button = gtk_button_new_with_label ("Add...");
- gtk_widget_show (button);
- gtk_signal_connect (GTK_OBJECT (button), "clicked", GTK_SIGNAL_FUNC (groupdlg_add), NULL);
- gtk_box_pack_start (GTK_BOX (hbox), button, FALSE, FALSE, 0);
- gtk_widget_set_usize (button, 60, -2);
-
- button = gtk_button_new_with_label ("Edit...");
- gtk_widget_show (button);
- gtk_box_pack_start (GTK_BOX (hbox), button, FALSE, FALSE, 0);
- gtk_widget_set_usize (button, 60, -2);
-
- button = gtk_button_new_with_label ("Delete");
- gtk_widget_show (button);
- gtk_box_pack_start (GTK_BOX (hbox), button, FALSE, FALSE, 0);
- gtk_widget_set_usize (button, 60, -2);
-
- label = gtk_label_new ("Groups");
- gtk_widget_show (label);
- gtk_notebook_append_page (GTK_NOTEBOOK (notebook), vbox, label);
- */
- inspector_mode = W_ENTITY;
- // gtk_window_set_title (GTK_WINDOW (dlg), "Entities");
- m_pWidget = dlg;
- /*
- load_pixmap ("grouptree1.bmp", g_pParentWnd->m_pWidget, &tree_pixmaps[0], &tree_masks[0]);
- load_pixmap ("grouptree2.bmp", g_pParentWnd->m_pWidget, &tree_pixmaps[1], &tree_masks[1]);
- load_pixmap ("grouptree3.bmp", g_pParentWnd->m_pWidget, &tree_pixmaps[2], &tree_masks[2]);
- load_pixmap ("grouptree4.bmp", g_pParentWnd->m_pWidget, &tree_pixmaps[3], &tree_masks[3]);
- load_pixmap ("grouptree5.bmp", g_pParentWnd->m_pWidget, &tree_pixmaps[4], &tree_masks[4]);
- load_pixmap ("grouptree6.bmp", g_pParentWnd->m_pWidget, &tree_pixmaps[5], &tree_masks[5]);
- load_pixmap ("grouptree7.bmp", g_pParentWnd->m_pWidget, &tree_pixmaps[6], &tree_masks[6]);
-
- Group_Init();
-*/
- g_signal_connect (G_OBJECT (notebook), "switch_page", G_CALLBACK (switch_page), dlg);
- }
-}
-