51extern G_MODULE_EXPORT
void on_calc_activate (GtkWidget * widg, gpointer data);
52extern G_MODULE_EXPORT
void set_mode (GtkWidget * widg, gpointer data);
70 gtk_check_menu_item_set_active ((GtkCheckMenuItem *)
active_project -> modelgl -> ogl_mode[1], TRUE);
120GtkWidget * this_work_menu (
int p,
int c)
125 menu = gtk_menu_new ();
126 GtkAccelGroup * accel_group = gtk_accel_group_new ();
127 gtk_window_add_accel_group (GTK_WINDOW (
MainWindow), accel_group);
130 widget_set_sensitive (
gtk3_menu_item (menu, _(
"Workspace"),
IMG_FILE, (gpointer)
PACKAGE_TD, NULL, NULL, FALSE, 0, 0, FALSE, FALSE, FALSE), 0);
132 gtk3_menu_item (menu, _(
"Open"),
IMG_STOCK, (gpointer)
FOPEN, G_CALLBACK(
on_open_save_activate), GINT_TO_POINTER(2), TRUE, GDK_KEY_w, GDK_CONTROL_MASK, FALSE, FALSE, FALSE);
133 gtk3_menu_item (menu, _(
"Save"),
IMG_STOCK, (gpointer)
FSAVE, G_CALLBACK(
on_open_save_activate), GINT_TO_POINTER(3), FALSE, 0, 0, FALSE, FALSE, FALSE);
134 gtk3_menu_item (menu, _(
"Save As"),
IMG_STOCK, (gpointer)
FSAVEAS, G_CALLBACK(
on_save_as_activate), GINT_TO_POINTER(3), TRUE, GDK_KEY_s, GDK_CONTROL_MASK, FALSE, FALSE, FALSE);
135 gtk3_menu_item (menu, _(
"Close"),
IMG_STOCK, (gpointer)
FCLOSE, G_CALLBACK(
on_close_workspace), GINT_TO_POINTER(1), TRUE, GDK_KEY_c, GDK_CONTROL_MASK, FALSE, FALSE, FALSE);
140 widget_set_sensitive (
gtk3_menu_item (menu, _(
"Project(s)"),
IMG_FILE, (gpointer)
PACKAGE_TD, NULL, NULL, FALSE, 0, 0, FALSE, FALSE, FALSE), FALSE);
144 gtk3_menu_item (menu, _(
"New"),
IMG_STOCK, (gpointer)
FNEW, G_CALLBACK(
on_create_new_project), NULL, TRUE, GDK_KEY_n, GDK_CONTROL_MASK, FALSE, FALSE, FALSE);
145 gtk3_menu_item (menu, _(
"Open"),
IMG_STOCK, (gpointer)
FSAVE, G_CALLBACK(
on_open_save_activate), GINT_TO_POINTER(0), TRUE, GDK_KEY_o, GDK_CONTROL_MASK, FALSE, FALSE, FALSE);
147 gtk3_menu_item (menu, _(
"Save"),
IMG_STOCK, (gpointer)
FSAVE, G_CALLBACK(
on_open_save_activate), GINT_TO_POINTER(1), FALSE, 0, 0, FALSE, FALSE, FALSE);
148 gtk3_menu_item (menu, _(
"Save As"),
IMG_STOCK, (gpointer)
FSAVEAS, G_CALLBACK(
on_save_as_activate), GINT_TO_POINTER(1), FALSE, 0, 0, FALSE, FALSE, FALSE);
151 gtk3_menu_item (menu, _(
"Close"),
IMG_STOCK, (gpointer)
FCLOSE, G_CALLBACK(
on_close_activate), GINT_TO_POINTER(
activep), FALSE, 0, 0, FALSE, FALSE, FALSE);
153 port =
gtk3_menu_item (menu, _(
"Export"),
IMG_FILE, (gpointer)
PACKAGE_CON, NULL, NULL, FALSE, 0, 0, FALSE, FALSE, FALSE);
154 dmenu = gtk_menu_new ();
155 gtk3_menu_item (dmenu, _(
"ISAACS Project File '*.ipf'"),
IMG_FILE, (gpointer)
PACKAGE_MOL, G_CALLBACK(
on_isaacs_port), GINT_TO_POINTER(1), FALSE, 0, 0, FALSE, FALSE, FALSE);
156 gtk3_menu_item (dmenu, _(
"Atomic Coordinates"),
IMG_FILE, (gpointer)
PACKAGE_CON, G_CALLBACK(
on_coord_port), GINT_TO_POINTER(1), FALSE, 0, 0, FALSE, FALSE, FALSE);
157 gtk_menu_item_set_submenu ((GtkMenuItem *)port, dmenu);
162 widget_set_sensitive (
gtk3_menu_item (menu, pname,
IMG_FILE, (gpointer)
PACKAGE_TD, NULL, NULL, FALSE, 0, 0, FALSE, FALSE, FALSE), 0);
167 gtk3_menu_item (menu, _(
"Make Active"),
IMG_STOCK, (gpointer)
YES, G_CALLBACK(
activate_project), GINT_TO_POINTER(p), FALSE, 0, 0, FALSE, FALSE, FALSE);
171 gchar * str = g_strdup_printf (_(
"Analyze: %s"),
graph_name[c]);
172 widget_set_sensitive (
gtk3_menu_item (menu, str,
IMG_FILE, (gpointer)
graph_img[c], G_CALLBACK(
compute_this_prop), GINT_TO_POINTER(p), FALSE, 0, 0, FALSE, FALSE, FALSE),
get_project_by_id(p) -> analysis[c] -> avail_ok);
175 gtk3_menu_item (menu, _(
"Edit Name"),
IMG_STOCK, (gpointer)
EDITA, G_CALLBACK(
change_project_name), GINT_TO_POINTER(p), FALSE, 0, 0, FALSE, FALSE, FALSE);
176 gtk3_menu_item (menu, _(
"Save"),
IMG_STOCK, (gpointer)
FSAVE, G_CALLBACK(
on_open_save_activate), GINT_TO_POINTER(1), FALSE, 0, 0, FALSE, FALSE, FALSE);
177 gtk3_menu_item (menu, _(
"Save As"),
IMG_STOCK, (gpointer)
FSAVEAS, G_CALLBACK(
on_save_as_activate), GINT_TO_POINTER(1), FALSE, 0, 0, FALSE, FALSE, FALSE);
180 gtk3_menu_item (menu, _(
"Close"),
IMG_STOCK, (gpointer)
FCLOSE, G_CALLBACK(
on_close_activate), GINT_TO_POINTER(p), FALSE, 0, 0, FALSE, FALSE, FALSE);
182 port =
gtk3_menu_item (menu, _(
"Export"),
IMG_FILE, (gpointer)
PACKAGE_CON, NULL, NULL, FALSE, 0, 0, FALSE, FALSE, FALSE);
183 dmenu = gtk_menu_new ();
184 gtk3_menu_item (dmenu, _(
"ISAACS Project File '*.ipf'"),
IMG_FILE, (gpointer)
PACKAGE_MOL, G_CALLBACK(
on_isaacs_port), GINT_TO_POINTER(1), FALSE, 0, 0, FALSE, FALSE, FALSE);
185 gtk3_menu_item (dmenu, _(
"Atomic Coordinates"),
IMG_FILE, (gpointer)
PACKAGE_CON, G_CALLBACK(
on_coord_port), GINT_TO_POINTER(1), FALSE, 0, 0, FALSE, FALSE, FALSE);
186 gtk_menu_item_set_submenu ((GtkMenuItem *)port, dmenu);
191 port =
gtk3_menu_item (menu, _(
"Import"),
IMG_FILE, (gpointer)
PACKAGE_IMP, NULL, NULL, FALSE, 0, 0, FALSE, FALSE, FALSE);
192 dmenu = gtk_menu_new ();
193 gtk_menu_item_set_submenu ((GtkMenuItem *)port, dmenu);
194 gtk3_menu_item (dmenu, _(
"ISAACS Project File '*.ipf'"),
IMG_FILE, (gpointer)
PACKAGE_MOL, G_CALLBACK(
on_isaacs_port), GINT_TO_POINTER(0), FALSE, 0, 0, FALSE, FALSE, FALSE);
195 gtk3_menu_item (dmenu, _(
"Atomic Coordinates"),
IMG_FILE, (gpointer)
PACKAGE_IMP, G_CALLBACK(
on_coord_port), GINT_TO_POINTER(0), FALSE, 0, 0, FALSE, FALSE, FALSE);
198 gtk3_menu_item (menu, _(
"Quit"),
IMG_STOCK, (gpointer)
FEXIT, G_CALLBACK(
leaving_from_menu), NULL, TRUE, GDK_KEY_q, GDK_CONTROL_MASK, FALSE, FALSE, FALSE);
206extern GSimpleAction *
pop_act[7];
220 GSimpleActionGroup * action_popup = g_simple_action_group_new ();
222 pop_act[0] = g_simple_action_new (
"workspace.open", NULL);
223 pop_act[1] = g_simple_action_new (
"workspace.save", NULL);
224 pop_act[2] = g_simple_action_new (
"workspace.save-as", NULL);
225 pop_act[3] = g_simple_action_new (
"workspace.close", NULL);
226 pop_act[4] = g_simple_action_new (
"project.active", NULL);
227 pop_act[5] = g_simple_action_new (
"project.compute", NULL);
228 pop_act[6] = g_simple_action_new (
"project.edit", NULL);
229 pop_act[7] = g_simple_action_new (
"project.new", NULL);
230 pop_act[8] = g_simple_action_new (
"project.open", NULL);
231 pop_act[9] = g_simple_action_new (
"project.save", NULL);
232 pop_act[10] = g_simple_action_new (
"project.save-as", NULL);
233 pop_act[11] = g_simple_action_new (
"project.close", NULL);
234 pop_act[12] = g_simple_action_new (
"export.isaacs", NULL);
235 pop_act[13] = g_simple_action_new (
"export.coordinates", NULL);
236 pop_act[14] = g_simple_action_new (
"import.isaacs", NULL);
237 pop_act[15] = g_simple_action_new (
"import.coordinates", NULL);
238 pop_act[16] = g_simple_action_new (
"program.quit", NULL);
241 for (i=0; i<17; i++) g_action_map_add_action (G_ACTION_MAP(action_popup), G_ACTION(
pop_act[i]));
262 menu = this_work_menu (p, c);
267 menu = gtk_popover_menu_new_from_model_full (G_MENU_MODEL(popup), GTK_POPOVER_MENU_NESTED);
268 i = (
nprojects) ? ((p > -1) ? 250 : 95) : 0;
269 gtk_widget_set_size_request (menu, -1, 310 + i);
277 gtk_widget_insert_action_group (menu,
"pop", G_ACTION_GROUP(action_popup));
G_MODULE_EXPORT void on_close_workspace(GtkWidget *widg, gpointer data)
close the active workspace
G_MODULE_EXPORT void on_open_save_activate(GtkWidget *widg, gpointer data)
open or save an atomes file - prepare the dialog
void apply_project(gboolean showtools)
get project ready for calculation and initialize the OpenGL window
G_MODULE_EXPORT void on_isaacs_port(GtkWidget *widg, gpointer data)
open or write ISAACS XML file - prepare the dialog
G_MODULE_EXPORT void on_coord_port(GtkWidget *widg, gpointer data)
export or import atomic coordinates: prepare dialog
G_MODULE_EXPORT void on_save_as_activate(GtkWidget *widg, gpointer data)
open or save, choosing a file name
Callback declarations for main window.
G_MODULE_EXPORT void on_close_activate(GtkWidget *widg, gpointer cdata)
signal to close a project
gboolean atomes_from_libreoffice
Global variable declarations Global convenience function declarations Global data structure defin...
GtkWidget * gtk3_menu_item(GtkWidget *menu, gchar *name, int icon_format, gpointer item_icon, GCallback handler, gpointer data, gboolean accel, guint key, GdkModifierType mod, gboolean check, gboolean radio, gboolean status)
gchar * graph_img[NCALCS]
void widget_set_sensitive(GtkWidget *widg, gboolean sensitive)
Set sensitivity for a GtkWidget, ensuring it is a GtkWidget.
void add_menu_separator(GtkWidget *menu)
void show_the_widgets(GtkWidget *widg)
show GtkWidget
project * get_project_by_id(int p)
get project pointer using id number
Variable declarations related to the OpenGL window Function declarations related to the OpenGL wind...
G_MODULE_EXPORT void compute_this_prop(GtkWidget *widg, gpointer data)
to compute the 'calc_to_compute'
G_MODULE_EXPORT void leaving_from_menu(GtkWidget *widg, gpointer data)
leaving atomes ?
G_MODULE_EXPORT void atomes_menu_bar_action(GSimpleAction *action, GVariant *parameter, gpointer data)
atomes menu bar actions
G_MODULE_EXPORT void on_create_new_project(GtkWidget *widg, gpointer data)
create a new project
void init_project(gboolean alloc_box)
initialize a new project
G_MODULE_EXPORT gboolean leaving_question(GtkWidget *widget, GdkEvent *event, gpointer data)
Leaving atomes ?
Messaging function declarations.
void prep_calc_actions()
prepare analysis widgets
Function declarations for reading atomes project file Function declarations for saving atomes proje...
void add_project_to_workspace()
add project(s) to the workspace tree
G_MODULE_EXPORT void activate_project(GtkWidget *widg, gpointer data)
activate a project
G_MODULE_EXPORT void change_project_name(GtkWidget *wid, gpointer edata)
change project name
Function declarations for workspace managment.