r400 - trunk/src/target/OM-2007/applications/openmoko-appmanager/src
caowai_song at gta01.hmw-consulting.de
caowai_song at gta01.hmw-consulting.de
Wed Dec 13 10:21:01 CET 2006
Author: caowai_song
Date: 2006-12-13 10:20:47 +0100 (Wed, 13 Dec 2006)
New Revision: 400
Modified:
trunk/src/target/OM-2007/applications/openmoko-appmanager/src/appmanager-data.c
trunk/src/target/OM-2007/applications/openmoko-appmanager/src/appmanager-data.h
trunk/src/target/OM-2007/applications/openmoko-appmanager/src/appmanager-window.c
trunk/src/target/OM-2007/applications/openmoko-appmanager/src/detail-area.c
trunk/src/target/OM-2007/applications/openmoko-appmanager/src/navigation-area.c
trunk/src/target/OM-2007/applications/openmoko-appmanager/src/package-list.c
trunk/src/target/OM-2007/applications/openmoko-appmanager/src/tool-box.c
trunk/src/target/OM-2007/applications/openmoko-appmanager/src/tool-box.h
Log:
Basic complete the detail info
Modified: trunk/src/target/OM-2007/applications/openmoko-appmanager/src/appmanager-data.c
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-appmanager/src/appmanager-data.c 2006-12-13 01:11:02 UTC (rev 399)
+++ trunk/src/target/OM-2007/applications/openmoko-appmanager/src/appmanager-data.c 2006-12-13 09:20:47 UTC (rev 400)
@@ -53,6 +53,7 @@
{
data->statuspix[i] = NULL;
}
+ data->searchhistory = NULL;
}
@@ -270,6 +271,20 @@
}
/**
+ * @brief Set the search history to the application manager data
+ * @param appdata The application manager data struct
+ * @param pixbuf A GdkPixbuf
+ */
+void
+application_manager_data_set_search_history (ApplicationManagerData *appdata,
+ gchar *searchhistory)
+{
+ g_return_if_fail (MOKO_IS_APPLICATION_MANAGER_DATA (appdata));
+
+ appdata->searchhistory = searchhistory;
+}
+
+/**
* @brief Init the pixbuf list.
*
* Load all pixbuf from the appointed file, and set the pixbuf to the
@@ -519,3 +534,16 @@
return appdata->statuspix[id];
}
+
+/**
+ * @brief Get the search history from the application manager data
+ * @param appdata The application manager data
+ * @return The search history
+ */
+gchar *
+application_manager_data_get_search_history (ApplicationManagerData *appdata)
+{
+ g_return_val_if_fail (MOKO_IS_APPLICATION_MANAGER_DATA (appdata), NULL);
+
+ return appdata->searchhistory;
+}
Modified: trunk/src/target/OM-2007/applications/openmoko-appmanager/src/appmanager-data.h
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-appmanager/src/appmanager-data.h 2006-12-13 01:11:02 UTC (rev 399)
+++ trunk/src/target/OM-2007/applications/openmoko-appmanager/src/appmanager-data.h 2006-12-13 09:20:47 UTC (rev 400)
@@ -68,6 +68,7 @@
gpointer nosecpkglist; ///<! The list of packages whose section name is NULL
gpointer currentlist; ///<! The current list that display on the navigation list
GdkPixbuf *statuspix[N_COUNT_PKG_STATUS]; ///<! The all pixbufs that need by the package list store
+ gchar *searchhistory; ///<! The search history
} ApplicationManagerData;
/**
@@ -123,6 +124,9 @@
void init_pixbuf_list (ApplicationManagerData *appdata);
+void application_manager_data_set_search_history (ApplicationManagerData *appdata,
+ gchar *searchhistory);
+
MokoPanedWindow *
application_manager_get_main_window (ApplicationManagerData *appdata);
@@ -166,6 +170,8 @@
application_manager_data_get_status_pixbuf (ApplicationManagerData *appdata,
guint id);
+gchar *
+ application_manager_data_get_search_history (ApplicationManagerData *appdata);
G_END_DECLS
Modified: trunk/src/target/OM-2007/applications/openmoko-appmanager/src/appmanager-window.c
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-appmanager/src/appmanager-window.c 2006-12-13 01:11:02 UTC (rev 399)
+++ trunk/src/target/OM-2007/applications/openmoko-appmanager/src/appmanager-window.c 2006-12-13 09:20:47 UTC (rev 400)
@@ -42,7 +42,7 @@
main (int argc, char* argv[])
{
ApplicationManagerData *appdata;
- MokoApplication *app;
+ //MokoApplication *app;
MokoPanedWindow *window;
GtkMenu *appmenu;
GtkMenu *filtermenu;
@@ -71,8 +71,8 @@
init_pixbuf_list (appdata);
- app = MOKO_APPLICATION (moko_application_get_instance ());
- g_set_application_name (_("Application manager"));
+ //app = MOKO_APPLICATION (moko_application_get_instance ());
+ //g_set_application_name (_("Application manager"));
window = MOKO_PANED_WINDOW (moko_paned_window_new ());
g_signal_connect (G_OBJECT (window), "delete_event",
Modified: trunk/src/target/OM-2007/applications/openmoko-appmanager/src/detail-area.c
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-appmanager/src/detail-area.c 2006-12-13 01:11:02 UTC (rev 399)
+++ trunk/src/target/OM-2007/applications/openmoko-appmanager/src/detail-area.c 2006-12-13 09:20:47 UTC (rev 400)
@@ -18,6 +18,7 @@
* @author Chaowei Song (songcw at fic-sh.com.cn)
*/
#include <libmokoui/moko-details-window.h>
+#include <string.h>
#include "detail-area.h"
#include "navigation-area.h"
@@ -51,8 +52,38 @@
}
/**
+ * @brief Format the depends list of package.
+ * @param depends The depends list
+ * @param The dest string
+ */
+static void
+format_depends_list (char *dest, char *depends, int size)
+{
+ int i = 0;
+ char *src;
+
+ src = depends;
+ dest[i++] = '\t';
+ dest[i++] = '*';
+ while (*src)
+ {
+ if (*src == ',')
+ {
+ dest[i++] = '\n';
+ dest[i++] = '\t';
+ dest[i++] = '*';
+ src++;
+ }
+ dest[i++] = *src;
+ src++;
+ }
+ dest[i] = 0;
+}
+
+/**
* @brief Update the detail area infomation base on the package that selected
* @param appdata The application manager data
+ * @param pkg The package infomation
*/
void
detail_area_update_info (ApplicationManagerData *appdata,
@@ -63,6 +94,8 @@
GtkTextIter start, end;
GdkPixbuf *pix;
GtkTextTagTable *tagtable;
+ gint pstart, pend;
+ char *depends;
g_debug ("Update the info in the detail area");
@@ -73,6 +106,7 @@
buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (textview));
gtk_text_buffer_set_text (buffer, "", -1);
+ g_return_if_fail (pkg != NULL);
// Init tag
tagtable = gtk_text_buffer_get_tag_table (buffer);
@@ -93,6 +127,7 @@
// Insert package name
gtk_text_buffer_get_end_iter (buffer, &end);
+ pstart = gtk_text_iter_get_offset (&end);
gtk_text_buffer_insert (buffer, &end,
package_list_get_package_name (pkg),
-1);
@@ -103,26 +138,70 @@
// Insert the maintainer
gtk_text_buffer_get_end_iter (buffer, &end);
+ pend = gtk_text_iter_get_offset (&end);
gtk_text_buffer_insert (buffer, &end,
package_list_get_package_maintainer (pkg),
-1);
// Set bold to the first line
- gtk_text_buffer_get_start_iter (buffer, &start);
- gtk_text_buffer_get_start_iter (buffer, &end);
- gtk_text_iter_forward_line (&end);
+ gtk_text_buffer_get_iter_at_offset (buffer, &start, pstart);
+ gtk_text_buffer_get_iter_at_offset (buffer, &end, pend);
gtk_text_buffer_apply_tag_by_name (buffer, "bold", &start, &end);
- // Insert the "\n"
+ // Set the Version
gtk_text_buffer_get_end_iter (buffer, &end);
- gtk_text_buffer_insert (buffer, &end, "\n", -1);
+ pstart = gtk_text_iter_get_offset (&end);
+ gtk_text_buffer_insert (buffer, &end, "\nVersion\n\t", -1);
+ gtk_text_buffer_get_end_iter (buffer, &end);
+ pend = gtk_text_iter_get_offset (&end);
+ gtk_text_buffer_insert (buffer, &end,
+ package_list_get_package_version (pkg),
+ -1);
+ gtk_text_buffer_get_iter_at_offset (buffer, &start, pstart);
+ gtk_text_buffer_get_iter_at_offset (buffer, &end, pend);
+ gtk_text_buffer_apply_tag_by_name (buffer, "bold", &start, &end);
+
// Set the descript
gtk_text_buffer_get_end_iter (buffer, &end);
+ pstart = gtk_text_iter_get_offset (&end);
+ gtk_text_buffer_insert (buffer, &end, "\nDescription\n\t", -1);
+
+ gtk_text_buffer_get_end_iter (buffer, &end);
+ pend = gtk_text_iter_get_offset (&end);
gtk_text_buffer_insert (buffer, &end,
package_list_get_package_description (pkg),
-1);
+ gtk_text_buffer_get_iter_at_offset (buffer, &start, pstart);
+ gtk_text_buffer_get_iter_at_offset (buffer, &end, pend);
+ gtk_text_buffer_apply_tag_by_name (buffer, "bold", &start, &end);
+ // Set the depends
+ depends = package_list_get_package_depends (pkg);
+ if (depends != NULL)
+ {
+ char *dep;
+ int size = strlen (depends) *2 +8;
+ dep = g_malloc (size);
+ g_return_if_fail (dep != NULL);
+ format_depends_list (dep, depends, size);
+
+ gtk_text_buffer_get_end_iter (buffer, &end);
+ pstart = gtk_text_iter_get_offset (&end);
+ gtk_text_buffer_insert (buffer, &end, "\nDepends\n", -1);
+
+ gtk_text_buffer_get_end_iter (buffer, &end);
+ pend = gtk_text_iter_get_offset (&end);
+ gtk_text_buffer_insert (buffer, &end,
+ dep,
+ -1);
+ gtk_text_buffer_get_iter_at_offset (buffer, &start, pstart);
+ gtk_text_buffer_get_iter_at_offset (buffer, &end, pend);
+ gtk_text_buffer_apply_tag_by_name (buffer, "bold", &start, &end);
+
+ g_free (dep);
+ }
+
g_object_unref (pix);
}
Modified: trunk/src/target/OM-2007/applications/openmoko-appmanager/src/navigation-area.c
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-appmanager/src/navigation-area.c 2006-12-13 01:11:02 UTC (rev 399)
+++ trunk/src/target/OM-2007/applications/openmoko-appmanager/src/navigation-area.c 2006-12-13 09:20:47 UTC (rev 400)
@@ -169,6 +169,11 @@
moko_tree_view_append_column (MOKO_TREE_VIEW (treeview), col);
+ ///<! For some reason, there must set the column length to fixed
+ gtk_tree_view_column_set_resizable (col, FALSE);
+ gtk_tree_view_column_set_sizing (col, GTK_TREE_VIEW_COLUMN_FIXED);
+ gtk_tree_view_column_set_fixed_width (col, 20);
+
///<! Add the name as the second column.
col = gtk_tree_view_column_new ();
gtk_tree_view_column_set_title (col, _("Name"));
@@ -182,6 +187,11 @@
moko_tree_view_append_column (MOKO_TREE_VIEW (treeview), col);
+ ///<! For some reason, there must set the column length to fixed
+ gtk_tree_view_column_set_resizable (col, FALSE);
+ gtk_tree_view_column_set_sizing (col, GTK_TREE_VIEW_COLUMN_FIXED);
+ gtk_tree_view_column_set_fixed_width (col, 240);
+
///<! Add the size as the third column.
col = gtk_tree_view_column_new ();
gtk_tree_view_column_set_title (col, _("Size"));
Modified: trunk/src/target/OM-2007/applications/openmoko-appmanager/src/package-list.c
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-appmanager/src/package-list.c 2006-12-13 01:11:02 UTC (rev 399)
+++ trunk/src/target/OM-2007/applications/openmoko-appmanager/src/package-list.c 2006-12-13 09:20:47 UTC (rev 400)
@@ -1019,3 +1019,4 @@
return package->maintainer;
}
+
Modified: trunk/src/target/OM-2007/applications/openmoko-appmanager/src/tool-box.c
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-appmanager/src/tool-box.c 2006-12-13 01:11:02 UTC (rev 399)
+++ trunk/src/target/OM-2007/applications/openmoko-appmanager/src/tool-box.c 2006-12-13 09:20:47 UTC (rev 400)
@@ -17,6 +17,7 @@
*
* @author Chaowei Song (songcw at fic-sh.com.cn)
*/
+#include <string.h>
#include "tool-box.h"
@@ -39,6 +40,58 @@
}
/**
+ * @brief The callback function of the search entry
+ */
+void
+on_search_entry_changed (GtkEditable *entryedit, gpointer data)
+{
+ ApplicationManagerData *appdata;
+ GtkEntry *entry;
+ const gchar *searchstr;
+ gchar *searchhistory;
+
+ g_debug ("Change the contant of entry");
+ g_return_if_fail (MOKO_IS_APPLICATION_MANAGER_DATA (data));
+
+ appdata = data;
+ entry = application_manager_get_search_entry (appdata);
+ g_return_if_fail (GTK_IS_ENTRY (entry));
+ searchstr = gtk_entry_get_text (entry);
+
+ g_return_if_fail (searchstr != NULL);
+
+ if (searchstr[0] == '\0')
+ {
+ //FIXME Add code later
+ g_debug ("The length of search string is 0");
+ return;
+ }
+
+ searchhistory = application_manager_data_get_search_history (appdata);
+ if (searchhistory == NULL)
+ {
+ searchhistory = g_malloc (MAX_SEARCH_ENTRY_TEXT_LENGTH + 1);
+ g_return_if_fail (searchhistory != NULL);
+
+ searchhistory[0] = '\0';
+ application_manager_data_set_search_history (appdata, searchhistory);
+ }
+
+ if (strstr ((char *)searchstr, (char *)searchhistory) != NULL)
+ {
+ //FIXME Add code later
+ g_debug ("Increase search");
+ }
+ else
+ {
+ //FIXME Add code later
+ g_debug ("Search from the beginning");
+ }
+
+ strncpy (searchhistory, searchstr, MAX_SEARCH_ENTRY_TEXT_LENGTH);
+}
+
+/**
* @brief Create a new tool box for the application manager data
* @param appdata The application manager data
* @return The toplevel widget of the tool box
@@ -67,6 +120,10 @@
searchentry = moko_tool_box_get_entry (toolbox);
application_manager_data_set_search_entry (appdata, searchentry);
+ gtk_entry_set_max_length (searchentry, MAX_SEARCH_ENTRY_TEXT_LENGTH);
+ g_signal_connect ((gpointer) searchentry, "changed",
+ G_CALLBACK (on_search_entry_changed),
+ appdata);
return toolbox;
}
Modified: trunk/src/target/OM-2007/applications/openmoko-appmanager/src/tool-box.h
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-appmanager/src/tool-box.h 2006-12-13 01:11:02 UTC (rev 399)
+++ trunk/src/target/OM-2007/applications/openmoko-appmanager/src/tool-box.h 2006-12-13 09:20:47 UTC (rev 400)
@@ -26,6 +26,8 @@
#include <libmokoui/moko-tool-box.h>
#include "appmanager-data.h"
+#define MAX_SEARCH_ENTRY_TEXT_LENGTH 50
+
MokoToolBox *tool_box_new (ApplicationManagerData *appdata);
#endif
More information about the commitlog
mailing list