SF.net SVN: geany: [817] trunk
ntrel at users.sourceforge.net
ntrel at xxxxx
Fri Sep 15 14:25:51 UTC 2006
Revision: 817
http://svn.sourceforge.net/geany/?rev=817&view=rev
Author: ntrel
Date: 2006-09-15 07:25:42 -0700 (Fri, 15 Sep 2006)
Log Message:
-----------
Add ui_frame_new().
Run set includes build dialogs modally, keeping the same filetype.
Updated set includes & arguments dialog layout.
Modified Paths:
--------------
trunk/ChangeLog
trunk/src/callbacks.c
trunk/src/dialogs.c
trunk/src/ui_utils.c
trunk/src/ui_utils.h
Modified: trunk/ChangeLog
===================================================================
--- trunk/ChangeLog 2006-09-13 07:43:47 UTC (rev 816)
+++ trunk/ChangeLog 2006-09-15 14:25:42 UTC (rev 817)
@@ -1,3 +1,11 @@
+2006-09-15 Nick Treleaven <nick.treleaven at btinternet.com>
+
+ * src/ui_utils.h, src/ui_utils.c, src/callbacks.c, src/dialogs.c:
+ Add ui_frame_new().
+ Run set includes build dialogs modally, keeping the same filetype.
+ Updated set includes & arguments dialog layout & text.
+
+
2006-09-12 Enrico Tröger <enrico.troeger at uvena.de>
* geany.glade, src/interface.c, src/callbacks.c, src/keybindings.c:
Modified: trunk/src/callbacks.c
===================================================================
--- trunk/src/callbacks.c 2006-09-13 07:43:47 UTC (rev 816)
+++ trunk/src/callbacks.c 2006-09-15 14:25:42 UTC (rev 817)
@@ -2252,10 +2252,11 @@
gint response,
gpointer user_data)
{
+ filetype *ft = user_data;
+ g_return_if_fail(ft != NULL);
+
if (response == GTK_RESPONSE_ACCEPT)
{
- filetype *ft = doc_list[GPOINTER_TO_INT(user_data)].file_type;
-
if (ft->menu_items->can_compile)
{
if (ft->programs->compiler) g_free(ft->programs->compiler);
@@ -2284,10 +2285,11 @@
gint response,
gpointer user_data)
{
+ filetype *ft = user_data;
+ g_return_if_fail(ft != NULL);
+
if (response == GTK_RESPONSE_ACCEPT)
{
- filetype *ft = doc_list[GPOINTER_TO_INT(user_data)].file_type;
-
if (ft->programs->compiler) g_free(ft->programs->compiler);
ft->programs->compiler = g_strdup(gtk_entry_get_text(
GTK_ENTRY(lookup_widget(GTK_WIDGET(dialog), "tex_entry1"))));
Modified: trunk/src/dialogs.c
===================================================================
--- trunk/src/dialogs.c 2006-09-13 07:43:47 UTC (rev 816)
+++ trunk/src/dialogs.c 2006-09-15 14:25:42 UTC (rev 817)
@@ -43,6 +43,7 @@
#include "sciwrappers.h"
#include "support.h"
#include "utils.h"
+#include "ui_utils.h"
#include "keybindings.h"
@@ -585,8 +586,11 @@
{
GtkWidget *dialog, *label, *entries[4];
gint idx = document_get_cur_idx();
- filetype *ft = doc_list[idx].file_type;
+ filetype *ft = NULL;
+ if (DOC_IDX_VALID(idx)) ft = doc_list[idx].file_type;
+ g_return_if_fail(ft != NULL);
+
dialog = gtk_dialog_new_with_buttons(_("Set Arguments"), GTK_WINDOW(app->window),
GTK_DIALOG_DESTROY_WITH_PARENT,
GTK_STOCK_CANCEL, GTK_RESPONSE_REJECT,
@@ -682,48 +686,65 @@
}
g_signal_connect((gpointer) dialog, "response",
- G_CALLBACK(on_includes_arguments_tex_dialog_response), GINT_TO_POINTER(idx));
+ G_CALLBACK(on_includes_arguments_tex_dialog_response), ft);
gtk_widget_show_all(dialog);
+ gtk_dialog_run(GTK_DIALOG(dialog)); // run modally to prevent user changing idx filetype
}
void dialogs_show_includes_arguments_gen()
{
GtkWidget *dialog, *label, *entries[3];
+ GtkWidget *ft_table;
+ gint row;
gint idx = document_get_cur_idx();
- filetype *ft = doc_list[idx].file_type;
- GtkTooltips *tooltips;
+ filetype *ft = NULL;
+
+ if (DOC_IDX_VALID(idx)) ft = doc_list[idx].file_type;
+ g_return_if_fail(ft != NULL);
+
dialog = gtk_dialog_new_with_buttons(_("Set Includes and Arguments"), GTK_WINDOW(app->window),
GTK_DIALOG_DESTROY_WITH_PARENT,
- GTK_STOCK_CANCEL, GTK_RESPONSE_REJECT,
+ GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
GTK_STOCK_OK, GTK_RESPONSE_ACCEPT, NULL);
+ gtk_container_set_border_width(GTK_CONTAINER(dialog), 6);
+ gtk_box_set_spacing(GTK_BOX(GTK_DIALOG(dialog)->vbox), 6);
- label = gtk_label_new(_("Sets the includes and library paths for the compiler and the program arguments for execution\n"));
- gtk_misc_set_padding(GTK_MISC(label), 0, 6);
- gtk_misc_set_alignment(GTK_MISC(label), 0, 0);
+ label = gtk_label_new(_("Set the commands for building and running programs."));
+ gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
gtk_container_add(GTK_CONTAINER(GTK_DIALOG(dialog)->vbox), label);
- tooltips = GTK_TOOLTIPS(lookup_widget(app->window, "tooltips"));
+ if (ft->menu_items->can_compile || ft->menu_items->can_link || ft->menu_items->can_exec)
+ {
+ GtkContainer *container;
+ gchar *frame_title = g_strconcat(ft->title, _(" commands"), NULL);
+ container = ui_frame_new(GTK_CONTAINER(GTK_DIALOG(dialog)->vbox), frame_title);
+ g_free(frame_title);
+
+ ft_table = gtk_table_new(3, 2, FALSE);
+ gtk_table_set_row_spacings(GTK_TABLE(ft_table), 6);
+ gtk_container_add(container, ft_table);
+ row = 0;
+ }
+
// include-args
if (ft->menu_items->can_compile)
{
- label = gtk_label_new(_("Enter here arguments to your compiler."));
- gtk_misc_set_padding(GTK_MISC(label), 0, 6);
- gtk_misc_set_alignment(GTK_MISC(label), 0, 0);
- gtk_container_add(GTK_CONTAINER(GTK_DIALOG(dialog)->vbox), label);
+ label = gtk_label_new(_("Compile:"));
+ gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
+ gtk_table_attach(GTK_TABLE(ft_table), label, 0, 1, row, row + 1,
+ GTK_FILL, GTK_FILL | GTK_EXPAND, 6, 0);
+
entries[0] = gtk_entry_new();
- gtk_tooltips_set_tip(tooltips, entries[0],
-_("%f will be replaced by the complete filename\n%e will be replaced by filename without extension"
- "\nExample: test_file.c\n%f -> test_file.c\n%e -> test_file"), NULL);
gtk_entry_set_width_chars(GTK_ENTRY(entries[0]), 30);
if (ft->programs->compiler)
{
gtk_entry_set_text(GTK_ENTRY(entries[0]), ft->programs->compiler);
}
- gtk_container_add(GTK_CONTAINER(GTK_DIALOG(dialog)->vbox), entries[0]);
+ gtk_table_attach_defaults(GTK_TABLE(ft_table), entries[0], 1, 2, row, row + 1);
+ row++;
- gtk_container_add(GTK_CONTAINER(GTK_DIALOG(dialog)->vbox), gtk_label_new(""));
g_object_set_data_full(G_OBJECT(dialog), "includes_entry1",
gtk_widget_ref(entries[0]), (GDestroyNotify)gtk_widget_unref);
}
@@ -731,54 +752,54 @@
// lib-args
if (ft->menu_items->can_link)
{
- label = gtk_label_new(_("Enter here arguments to your linker."));
- gtk_misc_set_padding(GTK_MISC(label), 0, 6);
- gtk_misc_set_alignment(GTK_MISC(label), 0, 0);
- gtk_container_add(GTK_CONTAINER(GTK_DIALOG(dialog)->vbox), label);
+ label = gtk_label_new(_("Build:"));
+ gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
+ gtk_table_attach(GTK_TABLE(ft_table), label, 0, 1, row, row + 1,
+ GTK_FILL, GTK_FILL | GTK_EXPAND, 6, 0);
+
entries[1] = gtk_entry_new();
- gtk_tooltips_set_tip(tooltips, entries[1],
-_("%f will be replaced by the complete filename\n%e will be replaced by filename without extension"
- "\nExample: test_file.c\n%f -> test_file.c\n%e -> test_file"), NULL);
gtk_entry_set_width_chars(GTK_ENTRY(entries[1]), 30);
if (ft->programs->linker)
{
gtk_entry_set_text(GTK_ENTRY(entries[1]), ft->programs->linker);
}
- gtk_container_add(GTK_CONTAINER(GTK_DIALOG(dialog)->vbox), entries[1]);
+ gtk_table_attach_defaults(GTK_TABLE(ft_table), entries[1], 1, 2, row, row + 1);
+ row++;
- gtk_container_add(GTK_CONTAINER(GTK_DIALOG(dialog)->vbox), gtk_label_new(""));
g_object_set_data_full(G_OBJECT(dialog), "includes_entry2",
gtk_widget_ref(entries[1]), (GDestroyNotify)gtk_widget_unref);
}
- // lib-args
+ // program-args
if (ft->menu_items->can_exec)
{
- // program-args
- label = gtk_label_new(_("Enter here arguments to your program."));
- gtk_misc_set_padding(GTK_MISC(label), 0, 6);
- gtk_misc_set_alignment(GTK_MISC(label), 0, 0);
- gtk_container_add(GTK_CONTAINER(GTK_DIALOG(dialog)->vbox), label);
+ label = gtk_label_new(_("Execute:"));
+ gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
+ gtk_table_attach(GTK_TABLE(ft_table), label, 0, 1, row, row + 1,
+ GTK_FILL, GTK_FILL | GTK_EXPAND, 6, 0);
+
entries[2] = gtk_entry_new();
- gtk_tooltips_set_tip(tooltips, entries[2],
-_("%f will be replaced by the complete filename\n%e will be replaced by filename without extension"
- "\nExample: test_file.c\n%f -> test_file.c\n%e -> test_file"), NULL);
gtk_entry_set_width_chars(GTK_ENTRY(entries[2]), 30);
if (ft->programs->run_cmd)
{
gtk_entry_set_text(GTK_ENTRY(entries[2]), ft->programs->run_cmd);
}
- gtk_container_add(GTK_CONTAINER(GTK_DIALOG(dialog)->vbox), entries[2]);
+ gtk_table_attach_defaults(GTK_TABLE(ft_table), entries[2], 1, 2, row, row + 1);
+ row++;
- gtk_container_add(GTK_CONTAINER(GTK_DIALOG(dialog)->vbox), gtk_label_new(""));
g_object_set_data_full(G_OBJECT(dialog), "includes_entry3",
gtk_widget_ref(entries[2]), (GDestroyNotify)gtk_widget_unref);
}
+ label = gtk_label_new(_("%f will be replaced by the current filename, e.g. test_file.c\n"
+ "%e will be replaced by the filename without extension, e.g. test_file"));
+ gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
+ gtk_container_add(GTK_CONTAINER(GTK_DIALOG(dialog)->vbox), label);
+
g_signal_connect((gpointer) dialog, "response",
- G_CALLBACK(on_includes_arguments_dialog_response), GINT_TO_POINTER(idx));
-
+ G_CALLBACK(on_includes_arguments_dialog_response), ft);
gtk_widget_show_all(dialog);
+ gtk_dialog_run(GTK_DIALOG(dialog)); // run modally to prevent user changing idx filetype
}
Modified: trunk/src/ui_utils.c
===================================================================
--- trunk/src/ui_utils.c 2006-09-13 07:43:47 UTC (rev 816)
+++ trunk/src/ui_utils.c 2006-09-15 14:25:42 UTC (rev 817)
@@ -1338,4 +1338,30 @@
}
+/* Creates a GNOME HIG style frame (with no border and indented child alignment)
+ * and packs it into the parent container.
+ * Returns: the alignment container for the frame */
+GtkContainer *ui_frame_new(GtkContainer *parent, const gchar *label_text)
+{
+ GtkWidget *label, *align;
+ GtkWidget *frame = gtk_frame_new (NULL);
+ gchar *label_markup;
+ gtk_container_add(GTK_CONTAINER(parent), frame);
+ gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_NONE);
+
+ align = gtk_alignment_new (0.5, 0.5, 1, 1);
+ gtk_container_add (GTK_CONTAINER (frame), align);
+ gtk_alignment_set_padding (GTK_ALIGNMENT (align), 0, 0, 12, 0);
+
+ label_markup = g_strconcat("<b>", label_text, "</b>", NULL);
+ label = gtk_label_new (label_markup);
+ gtk_frame_set_label_widget (GTK_FRAME (frame), label);
+ gtk_label_set_use_markup (GTK_LABEL (label), TRUE);
+ g_free(label_markup);
+
+ return GTK_CONTAINER(align);
+}
+
+
+
Modified: trunk/src/ui_utils.h
===================================================================
--- trunk/src/ui_utils.h 2006-09-13 07:43:47 UTC (rev 816)
+++ trunk/src/ui_utils.h 2006-09-15 14:25:42 UTC (rev 817)
@@ -94,4 +94,7 @@
void ui_show_linenumber_margin();
+
+GtkContainer *ui_frame_new(GtkContainer *parent, const gchar *label_text);
+
#endif
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Commits
mailing list