SF.net SVN: geany: [1478] trunk
ntrel at users.sourceforge.net
ntrel at xxxxx
Wed Apr 25 15:01:14 UTC 2007
Revision: 1478
http://svn.sourceforge.net/geany/?rev=1478&view=rev
Author: ntrel
Date: 2007-04-25 08:01:14 -0700 (Wed, 25 Apr 2007)
Log Message:
-----------
Separate filetype menu item creation from filetypes_init_types() so
it can be called without initializing GTK (for non-GUI commands).
Modified Paths:
--------------
trunk/ChangeLog
trunk/src/filetypes.c
trunk/src/filetypes.h
trunk/src/main.c
Modified: trunk/ChangeLog
===================================================================
--- trunk/ChangeLog 2007-04-24 11:02:26 UTC (rev 1477)
+++ trunk/ChangeLog 2007-04-25 15:01:14 UTC (rev 1478)
@@ -1,3 +1,10 @@
+2007-04-25 Nick Treleaven <nick.treleaven at btinternet.com>
+
+ * src/filetypes.c, src/filetypes.h, src/main.c:
+ Separate filetype menu item creation from filetypes_init_types() so
+ it can be called without initializing GTK (for non-GUI commands).
+
+
2007-04-24 Nick Treleaven <nick.treleaven at btinternet.com>
* src/search.c:
Modified: trunk/src/filetypes.c
===================================================================
--- trunk/src/filetypes.c 2007-04-24 11:02:26 UTC (rev 1477)
+++ trunk/src/filetypes.c 2007-04-25 15:01:14 UTC (rev 1478)
@@ -74,12 +74,11 @@
};
-static void filetypes_create_menu_item(GtkWidget *menu, gchar *label, filetype *ftype);
-static void filetypes_init_build_programs(filetype *ftype);
-
static GtkWidget *radio_items[GEANY_MAX_FILE_TYPES];
+static void filetypes_create_menu_item(GtkWidget *menu, const gchar *label, filetype *ftype);
+
// If uid is valid, return corresponding filetype, otherwise NULL.
filetype *filetypes_get_from_uid(gint uid)
{
@@ -119,17 +118,21 @@
}
-/* inits the filetype array and fill it with the known filetypes
- * and create the filetype menu*/
+/* Create the filetype array and fill it with the known filetypes. */
void filetypes_init_types()
{
- GtkWidget *filetype_menu = lookup_widget(app->window, "set_filetype1_menu");
+ filetype_id ft_id;
+ for (ft_id = 0; ft_id < GEANY_MAX_FILE_TYPES; ft_id++)
+ {
+ filetypes[ft_id] = g_new0(filetype, 1);
+ filetypes[ft_id]->programs = g_new0(struct build_programs, 1);
+ filetypes[ft_id]->actions = g_new0(struct build_actions, 1);
+ }
+
#define C // these macros are only to ease navigation
- filetypes[GEANY_FILETYPES_C] = g_new0(filetype, 1);
filetypes[GEANY_FILETYPES_C]->id = GEANY_FILETYPES_C;
filetypes[GEANY_FILETYPES_C]->uid = FILETYPE_UID_C;
- filetypes[GEANY_FILETYPES_C]->item = NULL;
filetypes[GEANY_FILETYPES_C]->lang = 0;
filetypes[GEANY_FILETYPES_C]->name = g_strdup("C");
filetypes[GEANY_FILETYPES_C]->has_tags = TRUE;
@@ -139,14 +142,10 @@
filetypes[GEANY_FILETYPES_C]->comment_open = g_strdup("/*");
filetypes[GEANY_FILETYPES_C]->comment_close = g_strdup("*/");
filetypes[GEANY_FILETYPES_C]->style_func_ptr = styleset_c;
- filetypes_init_build_programs(filetypes[GEANY_FILETYPES_C]);
- filetypes_create_menu_item(filetype_menu, filetypes[GEANY_FILETYPES_C]->title, filetypes[GEANY_FILETYPES_C]);
#define CPP
- filetypes[GEANY_FILETYPES_CPP] = g_new0(filetype, 1);
filetypes[GEANY_FILETYPES_CPP]->id = GEANY_FILETYPES_CPP;
filetypes[GEANY_FILETYPES_CPP]->uid = FILETYPE_UID_CPP;
- filetypes[GEANY_FILETYPES_CPP]->item = NULL;
filetypes[GEANY_FILETYPES_CPP]->lang = 1;
filetypes[GEANY_FILETYPES_CPP]->name = g_strdup("C++");
filetypes[GEANY_FILETYPES_CPP]->has_tags = TRUE;
@@ -157,14 +156,10 @@
filetypes[GEANY_FILETYPES_CPP]->style_func_ptr = styleset_cpp;
filetypes[GEANY_FILETYPES_CPP]->comment_open = g_strdup("//");
filetypes[GEANY_FILETYPES_CPP]->comment_close = NULL;
- filetypes_init_build_programs(filetypes[GEANY_FILETYPES_CPP]);
- filetypes_create_menu_item(filetype_menu, filetypes[GEANY_FILETYPES_CPP]->title, filetypes[GEANY_FILETYPES_CPP]);
#define D
- filetypes[GEANY_FILETYPES_D] = g_new0(filetype, 1);
filetypes[GEANY_FILETYPES_D]->id = GEANY_FILETYPES_D;
filetypes[GEANY_FILETYPES_D]->uid = FILETYPE_UID_D;
- filetypes[GEANY_FILETYPES_D]->item = NULL;
filetypes[GEANY_FILETYPES_D]->lang = 17;
filetypes[GEANY_FILETYPES_D]->name = g_strdup("D");
filetypes[GEANY_FILETYPES_D]->has_tags = TRUE;
@@ -174,15 +169,11 @@
filetypes[GEANY_FILETYPES_D]->comment_open = g_strdup("//");
filetypes[GEANY_FILETYPES_D]->comment_close = NULL;
filetypes[GEANY_FILETYPES_D]->style_func_ptr = styleset_d;
- filetypes_init_build_programs(filetypes[GEANY_FILETYPES_D]);
- filetypes_create_menu_item(filetype_menu, filetypes[GEANY_FILETYPES_D]->title, filetypes[GEANY_FILETYPES_D]);
#define JAVA
- filetypes[GEANY_FILETYPES_JAVA] = g_new0(filetype, 1);
filetypes[GEANY_FILETYPES_JAVA]->id = GEANY_FILETYPES_JAVA;
filetypes[GEANY_FILETYPES_JAVA]->name = g_strdup("Java");
filetypes[GEANY_FILETYPES_JAVA]->uid = FILETYPE_UID_JAVA;
- filetypes[GEANY_FILETYPES_JAVA]->item = NULL;
filetypes[GEANY_FILETYPES_JAVA]->lang = 2;
filetypes[GEANY_FILETYPES_JAVA]->has_tags = TRUE;
filetypes[GEANY_FILETYPES_JAVA]->title = g_strdup(_("Java source file"));
@@ -191,14 +182,10 @@
filetypes[GEANY_FILETYPES_JAVA]->comment_open = g_strdup("/*");
filetypes[GEANY_FILETYPES_JAVA]->comment_close = g_strdup("*/");
filetypes[GEANY_FILETYPES_JAVA]->style_func_ptr = styleset_java;
- filetypes_init_build_programs(filetypes[GEANY_FILETYPES_JAVA]);
- filetypes_create_menu_item(filetype_menu, filetypes[GEANY_FILETYPES_JAVA]->title, filetypes[GEANY_FILETYPES_JAVA]);
#define PAS // to avoid warnings when building under Windows, the symbol PASCAL is there defined
- filetypes[GEANY_FILETYPES_PASCAL] = g_new0(filetype, 1);
filetypes[GEANY_FILETYPES_PASCAL]->id = GEANY_FILETYPES_PASCAL;
filetypes[GEANY_FILETYPES_PASCAL]->uid = FILETYPE_UID_PASCAL;
- filetypes[GEANY_FILETYPES_PASCAL]->item = NULL;
filetypes[GEANY_FILETYPES_PASCAL]->lang = 4;
filetypes[GEANY_FILETYPES_PASCAL]->name = g_strdup("Pascal");
filetypes[GEANY_FILETYPES_PASCAL]->has_tags = TRUE;
@@ -209,14 +196,10 @@
filetypes[GEANY_FILETYPES_PASCAL]->style_func_ptr = styleset_pascal;
filetypes[GEANY_FILETYPES_PASCAL]->comment_open = g_strdup("{");
filetypes[GEANY_FILETYPES_PASCAL]->comment_close = g_strdup("}");
- filetypes_init_build_programs(filetypes[GEANY_FILETYPES_PASCAL]);
- filetypes_create_menu_item(filetype_menu, filetypes[GEANY_FILETYPES_PASCAL]->title, filetypes[GEANY_FILETYPES_PASCAL]);
#define ASM
- filetypes[GEANY_FILETYPES_ASM] = g_new0(filetype, 1);
filetypes[GEANY_FILETYPES_ASM]->id = GEANY_FILETYPES_ASM;
filetypes[GEANY_FILETYPES_ASM]->uid = FILETYPE_UID_ASM;
- filetypes[GEANY_FILETYPES_ASM]->item = NULL;
filetypes[GEANY_FILETYPES_ASM]->lang = 9;
filetypes[GEANY_FILETYPES_ASM]->name = g_strdup("ASM");
filetypes[GEANY_FILETYPES_ASM]->has_tags = TRUE;
@@ -226,14 +209,10 @@
filetypes[GEANY_FILETYPES_ASM]->style_func_ptr = styleset_asm;
filetypes[GEANY_FILETYPES_ASM]->comment_open = g_strdup(";");
filetypes[GEANY_FILETYPES_ASM]->comment_close = NULL;
- filetypes_init_build_programs(filetypes[GEANY_FILETYPES_ASM]);
- filetypes_create_menu_item(filetype_menu, filetypes[GEANY_FILETYPES_ASM]->title, filetypes[GEANY_FILETYPES_ASM]);
#define FORTRAN
- filetypes[GEANY_FILETYPES_FORTRAN] = g_new0(filetype, 1);
filetypes[GEANY_FILETYPES_FORTRAN]->id = GEANY_FILETYPES_FORTRAN;
filetypes[GEANY_FILETYPES_FORTRAN]->uid = FILETYPE_UID_FORTRAN;
- filetypes[GEANY_FILETYPES_FORTRAN]->item = NULL;
filetypes[GEANY_FILETYPES_FORTRAN]->lang = 18;
filetypes[GEANY_FILETYPES_FORTRAN]->name = g_strdup("Fortran");
filetypes[GEANY_FILETYPES_FORTRAN]->has_tags = TRUE;
@@ -244,14 +223,10 @@
filetypes[GEANY_FILETYPES_FORTRAN]->style_func_ptr = styleset_fortran;
filetypes[GEANY_FILETYPES_FORTRAN]->comment_open = g_strdup("c");
filetypes[GEANY_FILETYPES_FORTRAN]->comment_close = NULL;
- filetypes_init_build_programs(filetypes[GEANY_FILETYPES_FORTRAN]);
- filetypes_create_menu_item(filetype_menu, filetypes[GEANY_FILETYPES_FORTRAN]->title, filetypes[GEANY_FILETYPES_FORTRAN]);
#define CAML
- filetypes[GEANY_FILETYPES_CAML] = g_new0(filetype, 1);
filetypes[GEANY_FILETYPES_CAML]->id = GEANY_FILETYPES_CAML;
filetypes[GEANY_FILETYPES_CAML]->uid = FILETYPE_UID_CAML;
- filetypes[GEANY_FILETYPES_CAML]->item = NULL;
filetypes[GEANY_FILETYPES_CAML]->lang = -2;
filetypes[GEANY_FILETYPES_CAML]->name = g_strdup("CAML");
filetypes[GEANY_FILETYPES_CAML]->has_tags = FALSE;
@@ -261,14 +236,10 @@
filetypes[GEANY_FILETYPES_CAML]->style_func_ptr = styleset_caml;
filetypes[GEANY_FILETYPES_CAML]->comment_open = g_strdup("(*");
filetypes[GEANY_FILETYPES_CAML]->comment_close = g_strdup("*)");
- filetypes_init_build_programs(filetypes[GEANY_FILETYPES_CAML]);
- filetypes_create_menu_item(filetype_menu, filetypes[GEANY_FILETYPES_CAML]->title, filetypes[GEANY_FILETYPES_CAML]);
#define PERL
- filetypes[GEANY_FILETYPES_PERL] = g_new0(filetype, 1);
filetypes[GEANY_FILETYPES_PERL]->id = GEANY_FILETYPES_PERL;
filetypes[GEANY_FILETYPES_PERL]->uid = FILETYPE_UID_PERL;
- filetypes[GEANY_FILETYPES_PERL]->item = NULL;
filetypes[GEANY_FILETYPES_PERL]->lang = 5;
filetypes[GEANY_FILETYPES_PERL]->name = g_strdup("Perl");
filetypes[GEANY_FILETYPES_PERL]->has_tags = TRUE;
@@ -279,14 +250,10 @@
filetypes[GEANY_FILETYPES_PERL]->comment_open = g_strdup("#");
filetypes[GEANY_FILETYPES_PERL]->comment_close = NULL;
filetypes[GEANY_FILETYPES_PERL]->style_func_ptr = styleset_perl;
- filetypes_init_build_programs(filetypes[GEANY_FILETYPES_PERL]);
- filetypes_create_menu_item(filetype_menu, filetypes[GEANY_FILETYPES_PERL]->title, filetypes[GEANY_FILETYPES_PERL]);
#define PHP
- filetypes[GEANY_FILETYPES_PHP] = g_new0(filetype, 1);
filetypes[GEANY_FILETYPES_PHP]->id = GEANY_FILETYPES_PHP;
filetypes[GEANY_FILETYPES_PHP]->uid = FILETYPE_UID_PHP;
- filetypes[GEANY_FILETYPES_PHP]->item = NULL;
filetypes[GEANY_FILETYPES_PHP]->lang = 6;
filetypes[GEANY_FILETYPES_PHP]->name = g_strdup("PHP");
filetypes[GEANY_FILETYPES_PHP]->has_tags = TRUE;
@@ -297,14 +264,10 @@
filetypes[GEANY_FILETYPES_PHP]->style_func_ptr = styleset_php;
filetypes[GEANY_FILETYPES_PHP]->comment_open = g_strdup("//");
filetypes[GEANY_FILETYPES_PHP]->comment_close = NULL;
- filetypes_init_build_programs(filetypes[GEANY_FILETYPES_PHP]);
- filetypes_create_menu_item(filetype_menu, filetypes[GEANY_FILETYPES_PHP]->title, filetypes[GEANY_FILETYPES_PHP]);
#define JAVASCRIPT
- filetypes[GEANY_FILETYPES_JS] = g_new0(filetype, 1);
filetypes[GEANY_FILETYPES_JS]->id = GEANY_FILETYPES_JS;
filetypes[GEANY_FILETYPES_JS]->uid = FILETYPE_UID_JS;
- filetypes[GEANY_FILETYPES_JS]->item = NULL;
filetypes[GEANY_FILETYPES_JS]->lang = 23;
filetypes[GEANY_FILETYPES_JS]->name = g_strdup("Javascript");
filetypes[GEANY_FILETYPES_JS]->has_tags = TRUE;
@@ -314,14 +277,10 @@
filetypes[GEANY_FILETYPES_JS]->style_func_ptr = styleset_js;
filetypes[GEANY_FILETYPES_JS]->comment_open = g_strdup("//");
filetypes[GEANY_FILETYPES_JS]->comment_close = NULL;
- filetypes_init_build_programs(filetypes[GEANY_FILETYPES_JS]);
- filetypes_create_menu_item(filetype_menu, filetypes[GEANY_FILETYPES_JS]->title, filetypes[GEANY_FILETYPES_JS]);
#define PYTHON
- filetypes[GEANY_FILETYPES_PYTHON] = g_new0(filetype, 1);
filetypes[GEANY_FILETYPES_PYTHON]->id = GEANY_FILETYPES_PYTHON;
filetypes[GEANY_FILETYPES_PYTHON]->uid = FILETYPE_UID_PYTHON;
- filetypes[GEANY_FILETYPES_PYTHON]->item = NULL;
filetypes[GEANY_FILETYPES_PYTHON]->lang = 7;
filetypes[GEANY_FILETYPES_PYTHON]->name = g_strdup("Python");
filetypes[GEANY_FILETYPES_PYTHON]->has_tags = TRUE;
@@ -331,14 +290,10 @@
filetypes[GEANY_FILETYPES_PYTHON]->style_func_ptr = styleset_python;
filetypes[GEANY_FILETYPES_PYTHON]->comment_open = g_strdup("#");
filetypes[GEANY_FILETYPES_PYTHON]->comment_close = NULL;
- filetypes_init_build_programs(filetypes[GEANY_FILETYPES_PYTHON]);
- filetypes_create_menu_item(filetype_menu, filetypes[GEANY_FILETYPES_PYTHON]->title, filetypes[GEANY_FILETYPES_PYTHON]);
#define RUBY
- filetypes[GEANY_FILETYPES_RUBY] = g_new0(filetype, 1);
filetypes[GEANY_FILETYPES_RUBY]->id = GEANY_FILETYPES_RUBY;
filetypes[GEANY_FILETYPES_RUBY]->uid = FILETYPE_UID_RUBY;
- filetypes[GEANY_FILETYPES_RUBY]->item = NULL;
filetypes[GEANY_FILETYPES_RUBY]->lang = 14;
filetypes[GEANY_FILETYPES_RUBY]->name = g_strdup("Ruby");
filetypes[GEANY_FILETYPES_RUBY]->has_tags = TRUE;
@@ -348,14 +303,10 @@
filetypes[GEANY_FILETYPES_RUBY]->style_func_ptr = styleset_ruby;
filetypes[GEANY_FILETYPES_RUBY]->comment_open = g_strdup("#");
filetypes[GEANY_FILETYPES_RUBY]->comment_close = NULL;
- filetypes_init_build_programs(filetypes[GEANY_FILETYPES_RUBY]);
- filetypes_create_menu_item(filetype_menu, filetypes[GEANY_FILETYPES_RUBY]->title, filetypes[GEANY_FILETYPES_RUBY]);
#define TCL
- filetypes[GEANY_FILETYPES_TCL] = g_new0(filetype, 1);
filetypes[GEANY_FILETYPES_TCL]->id = GEANY_FILETYPES_TCL;
filetypes[GEANY_FILETYPES_TCL]->uid = FILETYPE_UID_TCL;
- filetypes[GEANY_FILETYPES_TCL]->item = NULL;
filetypes[GEANY_FILETYPES_TCL]->lang = 15;
filetypes[GEANY_FILETYPES_TCL]->name = g_strdup("Tcl");
filetypes[GEANY_FILETYPES_TCL]->has_tags = TRUE;
@@ -365,14 +316,10 @@
filetypes[GEANY_FILETYPES_TCL]->style_func_ptr = styleset_tcl;
filetypes[GEANY_FILETYPES_TCL]->comment_open = g_strdup("#");
filetypes[GEANY_FILETYPES_TCL]->comment_close = NULL;
- filetypes_init_build_programs(filetypes[GEANY_FILETYPES_TCL]);
- filetypes_create_menu_item(filetype_menu, filetypes[GEANY_FILETYPES_TCL]->title, filetypes[GEANY_FILETYPES_TCL]);
#define LUA
- filetypes[GEANY_FILETYPES_LUA] = g_new0(filetype, 1);
filetypes[GEANY_FILETYPES_LUA]->id = GEANY_FILETYPES_LUA;
filetypes[GEANY_FILETYPES_LUA]->uid = FILETYPE_UID_LUA;
- filetypes[GEANY_FILETYPES_LUA]->item = NULL;
filetypes[GEANY_FILETYPES_LUA]->lang = 22;
filetypes[GEANY_FILETYPES_LUA]->name = g_strdup("Lua");
filetypes[GEANY_FILETYPES_LUA]->has_tags = TRUE;
@@ -382,14 +329,10 @@
filetypes[GEANY_FILETYPES_LUA]->style_func_ptr = styleset_lua;
filetypes[GEANY_FILETYPES_LUA]->comment_open = g_strdup("--");
filetypes[GEANY_FILETYPES_LUA]->comment_close = NULL;
- filetypes_init_build_programs(filetypes[GEANY_FILETYPES_LUA]);
- filetypes_create_menu_item(filetype_menu, filetypes[GEANY_FILETYPES_LUA]->title, filetypes[GEANY_FILETYPES_LUA]);
#define FERITE
- filetypes[GEANY_FILETYPES_FERITE] = g_new0(filetype, 1);
filetypes[GEANY_FILETYPES_FERITE]->id = GEANY_FILETYPES_FERITE;
filetypes[GEANY_FILETYPES_FERITE]->uid = FILETYPE_UID_FERITE;
- filetypes[GEANY_FILETYPES_FERITE]->item = NULL;
filetypes[GEANY_FILETYPES_FERITE]->lang = 19;
filetypes[GEANY_FILETYPES_FERITE]->name = g_strdup("Ferite");
filetypes[GEANY_FILETYPES_FERITE]->has_tags = TRUE;
@@ -399,14 +342,10 @@
filetypes[GEANY_FILETYPES_FERITE]->style_func_ptr = styleset_ferite;
filetypes[GEANY_FILETYPES_FERITE]->comment_open = g_strdup("/*");
filetypes[GEANY_FILETYPES_FERITE]->comment_close = g_strdup("*/");
- filetypes_init_build_programs(filetypes[GEANY_FILETYPES_FERITE]);
- filetypes_create_menu_item(filetype_menu, filetypes[GEANY_FILETYPES_FERITE]->title, filetypes[GEANY_FILETYPES_FERITE]);
#define SH
- filetypes[GEANY_FILETYPES_SH] = g_new0(filetype, 1);
filetypes[GEANY_FILETYPES_SH]->id = GEANY_FILETYPES_SH;
filetypes[GEANY_FILETYPES_SH]->uid = FILETYPE_UID_SH;
- filetypes[GEANY_FILETYPES_SH]->item = NULL;
filetypes[GEANY_FILETYPES_SH]->lang = 16;
filetypes[GEANY_FILETYPES_SH]->name = g_strdup("Sh");
filetypes[GEANY_FILETYPES_SH]->has_tags = TRUE;
@@ -417,14 +356,10 @@
filetypes[GEANY_FILETYPES_SH]->style_func_ptr = styleset_sh;
filetypes[GEANY_FILETYPES_SH]->comment_open = g_strdup("#");
filetypes[GEANY_FILETYPES_SH]->comment_close = NULL;
- filetypes_init_build_programs(filetypes[GEANY_FILETYPES_SH]);
- filetypes_create_menu_item(filetype_menu, filetypes[GEANY_FILETYPES_SH]->title, filetypes[GEANY_FILETYPES_SH]);
#define MAKE
- filetypes[GEANY_FILETYPES_MAKE] = g_new0(filetype, 1);
filetypes[GEANY_FILETYPES_MAKE]->id = GEANY_FILETYPES_MAKE;
filetypes[GEANY_FILETYPES_MAKE]->uid = FILETYPE_UID_MAKE;
- filetypes[GEANY_FILETYPES_MAKE]->item = NULL;
filetypes[GEANY_FILETYPES_MAKE]->lang = 3;
filetypes[GEANY_FILETYPES_MAKE]->name = g_strdup("Make");
filetypes[GEANY_FILETYPES_MAKE]->has_tags = TRUE;
@@ -435,14 +370,10 @@
filetypes[GEANY_FILETYPES_MAKE]->style_func_ptr = styleset_makefile;
filetypes[GEANY_FILETYPES_MAKE]->comment_open = g_strdup("#");
filetypes[GEANY_FILETYPES_MAKE]->comment_close = NULL;
- filetypes_init_build_programs(filetypes[GEANY_FILETYPES_MAKE]);
- filetypes_create_menu_item(filetype_menu, filetypes[GEANY_FILETYPES_MAKE]->title, filetypes[GEANY_FILETYPES_MAKE]);
#define XML
- filetypes[GEANY_FILETYPES_XML] = g_new0(filetype, 1);
filetypes[GEANY_FILETYPES_XML]->id = GEANY_FILETYPES_XML;
filetypes[GEANY_FILETYPES_XML]->uid = FILETYPE_UID_XML;
- filetypes[GEANY_FILETYPES_XML]->item = NULL;
filetypes[GEANY_FILETYPES_XML]->lang = -2;
filetypes[GEANY_FILETYPES_XML]->name = g_strdup("XML");
filetypes[GEANY_FILETYPES_XML]->has_tags = FALSE;
@@ -453,14 +384,10 @@
filetypes[GEANY_FILETYPES_XML]->style_func_ptr = styleset_xml;
filetypes[GEANY_FILETYPES_XML]->comment_open = g_strdup("<!--");
filetypes[GEANY_FILETYPES_XML]->comment_close = g_strdup("-->");
- filetypes_init_build_programs(filetypes[GEANY_FILETYPES_XML]);
- filetypes_create_menu_item(filetype_menu, filetypes[GEANY_FILETYPES_XML]->title, filetypes[GEANY_FILETYPES_XML]);
#define DOCBOOK
- filetypes[GEANY_FILETYPES_DOCBOOK] = g_new0(filetype, 1);
filetypes[GEANY_FILETYPES_DOCBOOK]->id = GEANY_FILETYPES_DOCBOOK;
filetypes[GEANY_FILETYPES_DOCBOOK]->uid = FILETYPE_UID_DOCBOOK;
- filetypes[GEANY_FILETYPES_DOCBOOK]->item = NULL;
filetypes[GEANY_FILETYPES_DOCBOOK]->lang = 12;
filetypes[GEANY_FILETYPES_DOCBOOK]->name = g_strdup("Docbook");
filetypes[GEANY_FILETYPES_DOCBOOK]->has_tags = TRUE;
@@ -470,14 +397,10 @@
filetypes[GEANY_FILETYPES_DOCBOOK]->style_func_ptr = styleset_docbook;
filetypes[GEANY_FILETYPES_DOCBOOK]->comment_open = g_strdup("<!--");
filetypes[GEANY_FILETYPES_DOCBOOK]->comment_close = g_strdup("-->");
- filetypes_init_build_programs(filetypes[GEANY_FILETYPES_DOCBOOK]);
- filetypes_create_menu_item(filetype_menu, filetypes[GEANY_FILETYPES_DOCBOOK]->title, filetypes[GEANY_FILETYPES_DOCBOOK]);
#define HTML
- filetypes[GEANY_FILETYPES_HTML] = g_new0(filetype, 1);
filetypes[GEANY_FILETYPES_HTML]->id = GEANY_FILETYPES_HTML;
filetypes[GEANY_FILETYPES_HTML]->uid = FILETYPE_UID_HTML;
- filetypes[GEANY_FILETYPES_HTML]->item = NULL;
filetypes[GEANY_FILETYPES_HTML]->lang = -2;
filetypes[GEANY_FILETYPES_HTML]->name = g_strdup("HTML");
filetypes[GEANY_FILETYPES_HTML]->has_tags = FALSE;
@@ -488,14 +411,10 @@
filetypes[GEANY_FILETYPES_HTML]->style_func_ptr = styleset_html;
filetypes[GEANY_FILETYPES_HTML]->comment_open = g_strdup("<!--");
filetypes[GEANY_FILETYPES_HTML]->comment_close = g_strdup("-->");
- filetypes_init_build_programs(filetypes[GEANY_FILETYPES_HTML]);
- filetypes_create_menu_item(filetype_menu, filetypes[GEANY_FILETYPES_HTML]->title, filetypes[GEANY_FILETYPES_HTML]);
#define CSS
- filetypes[GEANY_FILETYPES_CSS] = g_new0(filetype, 1);
filetypes[GEANY_FILETYPES_CSS]->id = GEANY_FILETYPES_CSS;
filetypes[GEANY_FILETYPES_CSS]->uid = FILETYPE_UID_CSS;
- filetypes[GEANY_FILETYPES_CSS]->item = NULL;
filetypes[GEANY_FILETYPES_CSS]->lang = 13;
filetypes[GEANY_FILETYPES_CSS]->name = g_strdup("CSS");
filetypes[GEANY_FILETYPES_CSS]->has_tags = TRUE;
@@ -505,14 +424,10 @@
filetypes[GEANY_FILETYPES_CSS]->style_func_ptr = styleset_css;
filetypes[GEANY_FILETYPES_CSS]->comment_open = g_strdup("/*");
filetypes[GEANY_FILETYPES_CSS]->comment_close = g_strdup("*/");
- filetypes_init_build_programs(filetypes[GEANY_FILETYPES_CSS]);
- filetypes_create_menu_item(filetype_menu, filetypes[GEANY_FILETYPES_CSS]->title, filetypes[GEANY_FILETYPES_CSS]);
#define SQL
- filetypes[GEANY_FILETYPES_SQL] = g_new0(filetype, 1);
filetypes[GEANY_FILETYPES_SQL]->id = GEANY_FILETYPES_SQL;
filetypes[GEANY_FILETYPES_SQL]->uid = FILETYPE_UID_SQL;
- filetypes[GEANY_FILETYPES_SQL]->item = NULL;
filetypes[GEANY_FILETYPES_SQL]->lang = 11;
filetypes[GEANY_FILETYPES_SQL]->name = g_strdup("SQL");
filetypes[GEANY_FILETYPES_SQL]->has_tags = TRUE;
@@ -522,14 +437,10 @@
filetypes[GEANY_FILETYPES_SQL]->style_func_ptr = styleset_sql;
filetypes[GEANY_FILETYPES_SQL]->comment_open = g_strdup("/*");
filetypes[GEANY_FILETYPES_SQL]->comment_close = g_strdup("*/");
- filetypes_init_build_programs(filetypes[GEANY_FILETYPES_SQL]);
- filetypes_create_menu_item(filetype_menu, filetypes[GEANY_FILETYPES_SQL]->title, filetypes[GEANY_FILETYPES_SQL]);
#define LATEX
- filetypes[GEANY_FILETYPES_LATEX] = g_new0(filetype, 1);
filetypes[GEANY_FILETYPES_LATEX]->id = GEANY_FILETYPES_LATEX;
filetypes[GEANY_FILETYPES_LATEX]->uid = FILETYPE_UID_LATEX;
- filetypes[GEANY_FILETYPES_LATEX]->item = NULL;
filetypes[GEANY_FILETYPES_LATEX]->lang = 8;
filetypes[GEANY_FILETYPES_LATEX]->name = g_strdup("LaTeX");
filetypes[GEANY_FILETYPES_LATEX]->has_tags = TRUE;
@@ -539,14 +450,10 @@
filetypes[GEANY_FILETYPES_LATEX]->style_func_ptr = styleset_latex;
filetypes[GEANY_FILETYPES_LATEX]->comment_open = g_strdup("%");
filetypes[GEANY_FILETYPES_LATEX]->comment_close = NULL;
- filetypes_init_build_programs(filetypes[GEANY_FILETYPES_LATEX]);
- filetypes_create_menu_item(filetype_menu, filetypes[GEANY_FILETYPES_LATEX]->title, filetypes[GEANY_FILETYPES_LATEX]);
#define OMS
- filetypes[GEANY_FILETYPES_OMS] = g_new0(filetype, 1);
filetypes[GEANY_FILETYPES_OMS]->id = GEANY_FILETYPES_OMS;
filetypes[GEANY_FILETYPES_OMS]->uid = FILETYPE_UID_OMS;
- filetypes[GEANY_FILETYPES_OMS]->item = NULL;
filetypes[GEANY_FILETYPES_OMS]->lang = -2;
filetypes[GEANY_FILETYPES_OMS]->name = g_strdup("O-Matrix");
filetypes[GEANY_FILETYPES_OMS]->has_tags = FALSE;
@@ -556,14 +463,10 @@
filetypes[GEANY_FILETYPES_OMS]->style_func_ptr = styleset_oms;
filetypes[GEANY_FILETYPES_OMS]->comment_open = g_strdup("#");
filetypes[GEANY_FILETYPES_OMS]->comment_close = NULL;
- filetypes_init_build_programs(filetypes[GEANY_FILETYPES_OMS]);
- filetypes_create_menu_item(filetype_menu, filetypes[GEANY_FILETYPES_OMS]->title, filetypes[GEANY_FILETYPES_OMS]);
#define VHDL
- filetypes[GEANY_FILETYPES_VHDL] = g_new0(filetype, 1);
filetypes[GEANY_FILETYPES_VHDL]->id = GEANY_FILETYPES_VHDL;
filetypes[GEANY_FILETYPES_VHDL]->uid = FILETYPE_UID_VHDL;
- filetypes[GEANY_FILETYPES_VHDL]->item = NULL;
filetypes[GEANY_FILETYPES_VHDL]->lang = 21;
filetypes[GEANY_FILETYPES_VHDL]->name = g_strdup("VHDL");
filetypes[GEANY_FILETYPES_VHDL]->has_tags = TRUE;
@@ -573,14 +476,10 @@
filetypes[GEANY_FILETYPES_VHDL]->style_func_ptr = styleset_vhdl;
filetypes[GEANY_FILETYPES_VHDL]->comment_open = g_strdup("--");
filetypes[GEANY_FILETYPES_VHDL]->comment_close = NULL;
- filetypes_init_build_programs(filetypes[GEANY_FILETYPES_VHDL]);
- filetypes_create_menu_item(filetype_menu, filetypes[GEANY_FILETYPES_VHDL]->title, filetypes[GEANY_FILETYPES_VHDL]);
#define DIFF
- filetypes[GEANY_FILETYPES_DIFF] = g_new0(filetype, 1);
filetypes[GEANY_FILETYPES_DIFF]->id = GEANY_FILETYPES_DIFF;
filetypes[GEANY_FILETYPES_DIFF]->uid = FILETYPE_UID_DIFF;
- filetypes[GEANY_FILETYPES_DIFF]->item = NULL;
filetypes[GEANY_FILETYPES_DIFF]->lang = 20;
filetypes[GEANY_FILETYPES_DIFF]->name = g_strdup("Diff");
filetypes[GEANY_FILETYPES_DIFF]->has_tags = TRUE;
@@ -590,14 +489,10 @@
filetypes[GEANY_FILETYPES_DIFF]->style_func_ptr = styleset_diff;
filetypes[GEANY_FILETYPES_DIFF]->comment_open = g_strdup("#");
filetypes[GEANY_FILETYPES_DIFF]->comment_close = NULL;
- filetypes_init_build_programs(filetypes[GEANY_FILETYPES_DIFF]);
- filetypes_create_menu_item(filetype_menu, filetypes[GEANY_FILETYPES_DIFF]->title, filetypes[GEANY_FILETYPES_DIFF]);
#define CONF
- filetypes[GEANY_FILETYPES_CONF] = g_new0(filetype, 1);
filetypes[GEANY_FILETYPES_CONF]->id = GEANY_FILETYPES_CONF;
filetypes[GEANY_FILETYPES_CONF]->uid = FILETYPE_UID_CONF;
- filetypes[GEANY_FILETYPES_CONF]->item = NULL;
filetypes[GEANY_FILETYPES_CONF]->lang = 10;
filetypes[GEANY_FILETYPES_CONF]->name = g_strdup("Conf");
filetypes[GEANY_FILETYPES_CONF]->has_tags = TRUE;
@@ -608,15 +503,11 @@
filetypes[GEANY_FILETYPES_CONF]->style_func_ptr = styleset_conf;
filetypes[GEANY_FILETYPES_CONF]->comment_open = g_strdup("#");
filetypes[GEANY_FILETYPES_CONF]->comment_close = NULL;
- filetypes_init_build_programs(filetypes[GEANY_FILETYPES_CONF]);
- filetypes_create_menu_item(filetype_menu, filetypes[GEANY_FILETYPES_CONF]->title, filetypes[GEANY_FILETYPES_CONF]);
#define ALL
- filetypes[GEANY_FILETYPES_ALL] = g_new0(filetype, 1);
filetypes[GEANY_FILETYPES_ALL]->id = GEANY_FILETYPES_ALL;
filetypes[GEANY_FILETYPES_ALL]->name = g_strdup("None");
filetypes[GEANY_FILETYPES_ALL]->uid = FILETYPE_UID_ALL;
- filetypes[GEANY_FILETYPES_ALL]->item = NULL;
filetypes[GEANY_FILETYPES_ALL]->lang = -2;
filetypes[GEANY_FILETYPES_ALL]->has_tags = FALSE;
filetypes[GEANY_FILETYPES_ALL]->title = g_strdup(_("All files"));
@@ -625,17 +516,26 @@
filetypes[GEANY_FILETYPES_ALL]->style_func_ptr = styleset_none;
filetypes[GEANY_FILETYPES_ALL]->comment_open = NULL;
filetypes[GEANY_FILETYPES_ALL]->comment_close = NULL;
- filetypes_init_build_programs(filetypes[GEANY_FILETYPES_ALL]);
- filetypes_create_menu_item(filetype_menu, _("None"), filetypes[GEANY_FILETYPES_ALL]);
}
-/* convenience function - NULLs and zeros struct members */
-static void filetypes_init_build_programs(filetype *ftype)
+/* Calls filetypes_init_types() and creates the filetype menu. */
+void filetypes_init()
{
- ftype->programs = g_new0(struct build_programs, 1);
+ filetype_id ft_id;
+ GtkWidget *filetype_menu = lookup_widget(app->window, "set_filetype1_menu");
- ftype->actions = g_new0(struct build_actions, 1);
+ filetypes_init_types();
+
+ // Append all filetypes to the filetype menu
+ for (ft_id = 0; ft_id < GEANY_MAX_FILE_TYPES; ft_id++)
+ {
+ filetype *ft = filetypes[ft_id];
+ const gchar *title = (ft_id == GEANY_FILETYPES_ALL) ? _("None") : ft->title;
+
+ ft->item = NULL;
+ filetypes_create_menu_item(filetype_menu, title, ft);
+ }
}
@@ -753,10 +653,11 @@
}
-static void filetypes_create_menu_item(GtkWidget *menu, gchar *label, filetype *ftype)
+static void filetypes_create_menu_item(GtkWidget *menu, const gchar *label, filetype *ftype)
{
static GSList *group = NULL;
GtkWidget *tmp;
+
tmp = gtk_radio_menu_item_new_with_label(group, label);
group = gtk_radio_menu_item_get_group(GTK_RADIO_MENU_ITEM(tmp));
radio_items[ftype->id] = tmp;
Modified: trunk/src/filetypes.h
===================================================================
--- trunk/src/filetypes.h 2007-04-24 11:02:26 UTC (rev 1477)
+++ trunk/src/filetypes.h 2007-04-25 15:01:14 UTC (rev 1478)
@@ -115,8 +115,10 @@
// If uid is valid, return corresponding filetype, otherwise NULL.
filetype *filetypes_get_from_uid(gint uid);
-/* inits the filetype array and fill it with the known filetypes
- * and create the filetype menu*/
+/* Calls filetypes_init_types() and creates the filetype menu. */
+void filetypes_init();
+
+/* Create the filetype array and fill it with the known filetypes. */
void filetypes_init_types();
/* Detect the filetype for document idx, checking for a shebang, then filename extension. */
Modified: trunk/src/main.c
===================================================================
--- trunk/src/main.c 2007-04-24 11:02:26 UTC (rev 1477)
+++ trunk/src/main.c 2007-04-25 15:01:14 UTC (rev 1478)
@@ -441,13 +441,7 @@
exit(0);
}
- if (generate_tags)
- {
- gboolean ret = symbols_generate_global_tags(*argc, *argv);
- exit(ret);
- }
-
app->debug_mode = debug_mode;
#ifdef GEANY_DEBUG
geany_debug("debug mode built in (can't be disabled)");
@@ -461,6 +455,23 @@
else
app->configdir = g_strconcat(GEANY_HOME_DIR, G_DIR_SEPARATOR_S, ".", PACKAGE, NULL);
+#ifdef GEANY_DEBUG
+ if (generate_datafiles)
+ {
+ filetypes_init_types();
+ configuration_generate_data_files(); // currently only filetype_extensions.conf
+ exit(0);
+ }
+#endif
+ if (generate_tags)
+ {
+ gboolean ret;
+
+ ret = symbols_generate_global_tags(*argc, *argv);
+ exit(ret);
+ }
+
+
#ifdef HAVE_SOCKET
socket_info.ignore_socket = ignore_socket;
#endif
@@ -639,14 +650,7 @@
keybindings_init();
tools_create_insert_custom_command_menu_items();
notebook_init();
- filetypes_init_types();
-#ifdef GEANY_DEBUG
- if (generate_datafiles)
- {
- configuration_generate_data_files();
- exit(0);
- }
-#endif
+ filetypes_init();
templates_init();
document_init_doclist();
configuration_read_filetype_extensions();
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