SF.net SVN: geany:[5016] branches/unstable
elextr at users.sourceforge.net
elextr at xxxxx
Sat Jun 12 05:09:53 UTC 2010
Revision: 5016
http://geany.svn.sourceforge.net/geany/?rev=5016&view=rev
Author: elextr
Date: 2010-06-12 05:09:53 +0000 (Sat, 12 Jun 2010)
Log Message:
-----------
Make build config entries light grey until set.
Modified Paths:
--------------
branches/unstable/ChangeLog
branches/unstable/src/build.c
Modified: branches/unstable/ChangeLog
===================================================================
--- branches/unstable/ChangeLog 2010-06-10 15:43:50 UTC (rev 5015)
+++ branches/unstable/ChangeLog 2010-06-12 05:09:53 UTC (rev 5016)
@@ -1,3 +1,9 @@
+2010-06-12 Lex Trotman <elextr.at.gmail.com>
+
+ * src/build.c
+ Make build config entries light grey until set.
+
+
2010-06-10 Nick Treleaven <nick(dot)treleaven(at)btinternet(dot)com>
* src/keybindings.c, src/about.c, THANKS:
Modified: branches/unstable/src/build.c
===================================================================
--- branches/unstable/src/build.c 2010-06-10 15:43:50 UTC (rev 5015)
+++ branches/unstable/src/build.c 2010-06-12 05:09:53 UTC (rev 5016)
@@ -1727,9 +1727,18 @@
gint grp;
gint cmd;
gboolean cleared;
+ gboolean used_dst;
} RowWidgets;
+static void set_row_color(RowWidgets *r, GdkColor *color )
+{
+ enum GeanyBuildCmdEntries i;
+ for (i = 0; i < GEANY_BC_CMDENTRIES_COUNT; i++)
+ gtk_widget_modify_text(r->entries[i], GTK_STATE_NORMAL, color);
+};
+
+
static void set_build_command_entry_text(GtkWidget *wid, const gchar *text)
{
if (GTK_IS_BUTTON(wid))
@@ -1744,6 +1753,7 @@
RowWidgets *r = (RowWidgets*)user_data;
gint src;
enum GeanyBuildCmdEntries i;
+ GdkColor color;
GeanyBuildCommand *bc = get_next_build_cmd(NULL, r->grp, r->cmd, r->dst, &src);
if (bc != NULL)
@@ -1764,6 +1774,9 @@
set_build_command_entry_text(r->entries[i], "");
}
}
+ r->used_dst = FALSE;
+ gdk_color_parse("light grey", &color);
+ set_row_color(r, &color);
r->cleared = TRUE;
}
@@ -1774,16 +1787,27 @@
}
-static void on_label_button_clicked(GtkWidget *wid)
+static void on_label_button_clicked(GtkWidget *wid, gpointer user_data)
{
+ RowWidgets *r = (RowWidgets*)user_data;
const gchar *old = gtk_button_get_label(GTK_BUTTON(wid));
gchar *str = dialogs_show_input(_("Set menu item label"), NULL, old);
gtk_button_set_label(GTK_BUTTON(wid), str);
g_free(str);
+ r->used_dst = TRUE;
+ set_row_color(r, NULL);
}
+static void on_entry_focus(GtkWidget *wid, GdkEventFocus *unused, gpointer user_data)
+{
+ RowWidgets *r = (RowWidgets*)user_data;
+ r->used_dst = TRUE;
+ set_row_color(r, NULL);
+}
+
+
/* Column headings, array NULL-terminated */
static const gchar *colheads[] =
{
@@ -1812,6 +1836,7 @@
gint src;
enum GeanyBuildCmdEntries i;
guint column = 0;
+ GdkColor color;
label = gtk_label_new(g_strdup_printf("%d:", cmd + 1));
gtk_table_attach(table, label, column, column + 1, row, row + 1, GTK_FILL,
@@ -1831,10 +1856,13 @@
GtkWidget *wid = roww->entries[i] = gtk_button_new();
gtk_button_set_use_underline(GTK_BUTTON(wid), TRUE);
ui_widget_set_tooltip_text(wid, _("Click to set menu item label"));
- g_signal_connect(wid, "clicked", G_CALLBACK(on_label_button_clicked), NULL);
+ g_signal_connect(wid, "clicked", G_CALLBACK(on_label_button_clicked), roww);
}
else
+ {
roww->entries[i] = gtk_entry_new();
+ g_signal_connect(roww->entries[i], "focus-in-event", G_CALLBACK(on_entry_focus), roww);
+ }
gtk_table_attach(table, roww->entries[i], column, column + 1, row, row + 1, xflags,
GTK_FILL | GTK_EXPAND, entry_x_padding, entry_y_padding);
}
@@ -1852,10 +1880,15 @@
for (i = 0; i < GEANY_BC_CMDENTRIES_COUNT; i++)
{
const gchar *str = "";
- if (bc != NULL && (str = bc->entries[i]) == NULL)
- str = "";
+ if (bc != NULL )
+ {
+ if ((str = bc->entries[i]) == NULL) str = "";
+ else if ((gint)dst == src) roww->used_dst = TRUE;
+ }
set_build_command_entry_text(roww->entries[i], str);
}
+ gdk_color_parse("light grey", &color);
+ if (bc != NULL && ((gint)dst > src)) set_row_color(roww, &color);
if (bc != NULL && (src > (gint)dst || (grp == GEANY_GBG_FT && (doc == NULL || doc->file_type == NULL))))
{
for (i = 0; i < GEANY_BC_CMDENTRIES_COUNT; i++)
@@ -2059,35 +2092,14 @@
changed = TRUE;
}
}
- if (
- (
- table_data->rows[drow]->cmdsrc == NULL /* originally there was no content */
- &&
- (
- NZV(entries[GEANY_BC_LABEL]) /* but now one field has some */
- || NZV(entries[GEANY_BC_COMMAND])
- || NZV(entries[GEANY_BC_WORKING_DIR])
- )
- )
- ||
- (
- table_data->rows[drow]->cmdsrc != NULL /* originally there was content */
- &&
- ( /* and some of it was changed */
- stcmp(entries[GEANY_BC_LABEL], table_data->rows[drow]->cmdsrc->entries[GEANY_BC_LABEL]) != 0
- || stcmp(entries[GEANY_BC_COMMAND], table_data->rows[drow]->cmdsrc->entries[GEANY_BC_COMMAND]) != 0
- || stcmp(entries[GEANY_BC_WORKING_DIR],
- table_data->rows[drow]->cmdsrc->entries[GEANY_BC_WORKING_DIR]) != 0
- )
- )
- )
+ if (table_data->rows[drow]->used_dst == TRUE)
{
if (dst->dst[grp] != NULL)
{
if (*(dst->dst[grp]) == NULL)
*(dst->dst[grp]) = g_new0(GeanyBuildCommand, build_groups_count[grp]);
- for (i = 0; i < GEANY_BC_CMDENTRIES_COUNT; i++)
- setptr((*(dst->dst[grp]))[cmd].entries[i], entries[i]);
+ for (i = 0; i < GEANY_BC_CMDENTRIES_COUNT; i++){ printf(" set %d to '%s'\n", i, entries[i]);
+ setptr((*(dst->dst[grp]))[cmd].entries[i], entries[i]); }
(*(dst->dst[grp]))[cmd].exists = TRUE;
(*(dst->dst[grp]))[cmd].changed = TRUE;
changed = TRUE;
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