r276 - in trunk/src/target/OM-2007/applications/openmoko-appmanager-demo: data src
caowai_song at gta01.hmw-consulting.de
caowai_song at gta01.hmw-consulting.de
Fri Dec 1 07:40:41 CET 2006
Author: caowai_song
Date: 2006-12-01 06:40:24 +0000 (Fri, 01 Dec 2006)
New Revision: 276
Added:
trunk/src/target/OM-2007/applications/openmoko-appmanager-demo/data/unkown.png
Modified:
trunk/src/target/OM-2007/applications/openmoko-appmanager-demo/data/Makefile.am
trunk/src/target/OM-2007/applications/openmoko-appmanager-demo/src/appmanager-data.c
trunk/src/target/OM-2007/applications/openmoko-appmanager-demo/src/appmanager-window.c
trunk/src/target/OM-2007/applications/openmoko-appmanager-demo/src/detail-area.c
trunk/src/target/OM-2007/applications/openmoko-appmanager-demo/src/detail-area.h
trunk/src/target/OM-2007/applications/openmoko-appmanager-demo/src/navigation-area.c
trunk/src/target/OM-2007/applications/openmoko-appmanager-demo/src/navigation-area.h
trunk/src/target/OM-2007/applications/openmoko-appmanager-demo/src/package-list.c
Log:
Complete a sample demo that use the libmokoui
Modified: trunk/src/target/OM-2007/applications/openmoko-appmanager-demo/data/Makefile.am
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-appmanager-demo/data/Makefile.am 2006-11-30 20:48:23 UTC (rev 275)
+++ trunk/src/target/OM-2007/applications/openmoko-appmanager-demo/data/Makefile.am 2006-12-01 06:40:24 UTC (rev 276)
@@ -3,7 +3,8 @@
package-installed.png\
package-mark-install.png\
package-remove.png\
- package-upgrade.png
+ package-upgrade.png\
+ unkown.png
resourcedir = $(pkgdatadir)
resource_DATA = package-available.png\
@@ -11,5 +12,6 @@
package-installed.png\
package-mark-install.png\
package-remove.png\
- package-upgrade.png
+ package-upgrade.png\
+ unkown.png
Added: trunk/src/target/OM-2007/applications/openmoko-appmanager-demo/data/unkown.png
===================================================================
(Binary files differ)
Property changes on: trunk/src/target/OM-2007/applications/openmoko-appmanager-demo/data/unkown.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Modified: trunk/src/target/OM-2007/applications/openmoko-appmanager-demo/src/appmanager-data.c
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-appmanager-demo/src/appmanager-data.c 2006-11-30 20:48:23 UTC (rev 275)
+++ trunk/src/target/OM-2007/applications/openmoko-appmanager-demo/src/appmanager-data.c 2006-12-01 06:40:24 UTC (rev 276)
@@ -367,5 +367,5 @@
g_return_val_if_fail (appdata != NULL, NULL);
g_return_val_if_fail (id < N_COUNT_PKG_STATUS, NULL);
- return appdata->selectedlist;
+ return appdata->statuspix[id];
}
Modified: trunk/src/target/OM-2007/applications/openmoko-appmanager-demo/src/appmanager-window.c
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-appmanager-demo/src/appmanager-window.c 2006-11-30 20:48:23 UTC (rev 275)
+++ trunk/src/target/OM-2007/applications/openmoko-appmanager-demo/src/appmanager-window.c 2006-12-01 06:40:24 UTC (rev 276)
@@ -93,12 +93,15 @@
moko_paned_window_set_lower_pane (window, detail);
//Load the list of all package in the memory
+ /*
ret = init_package_list (appdata);
if (ret != OP_SUCCESS)
{
g_debug ("Can not initial the libipkg, the result is%d", ret);
return -1;
}
+ */
+ ret = navigation_area_insert_test_data (appdata);
gtk_widget_show_all (GTK_WIDGET (window));
g_debug ("application manager enter main loop");
Modified: trunk/src/target/OM-2007/applications/openmoko-appmanager-demo/src/detail-area.c
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-appmanager-demo/src/detail-area.c 2006-11-30 20:48:23 UTC (rev 275)
+++ trunk/src/target/OM-2007/applications/openmoko-appmanager-demo/src/detail-area.c 2006-12-01 06:40:24 UTC (rev 276)
@@ -19,6 +19,7 @@
*/
#include "detail-area.h"
+#include "navigation-area.h"
/**
* @brief Create a detail area to the application manager data
@@ -47,3 +48,48 @@
return scrollwindow;
}
+
+/**
+ * @brief Update the detail area infomation base on the package that selected
+ * @param appdata The application manager data
+ */
+void
+detail_area_update_info (ApplicationManagerData *appdata)
+{
+ GtkWidget *textview;
+ GtkTextBuffer *buffer;
+ GtkTextIter iter;
+ GdkPixbuf *pix;
+ gchar *name = NULL;
+ gchar str[256];
+
+ g_debug ("Update the info in the detail area");
+
+ g_return_if_fail (appdata != NULL);
+
+ textview = application_manager_get_tvdetail (appdata);
+ if (textview == NULL)
+ {
+ g_debug ("Textview is NULL");
+ return;
+ }
+
+ buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (textview));
+ if (buffer == NULL)
+ {
+ g_debug ("Textview not init correctly, textbuffer is NULL");
+ return;
+ }
+
+ name = treeview_get_selected_name (application_manager_get_tvpkglist (appdata));
+
+ pix = create_pixbuf ("unkown.png");
+
+ sprintf (str, "The selected package name is:%s", name);
+ gtk_text_buffer_set_text (buffer, str, -1);
+
+ gtk_text_buffer_get_start_iter (buffer, &iter);
+ gtk_text_buffer_insert_pixbuf (buffer, &iter, pix);
+
+ g_object_unref (pix);
+}
Modified: trunk/src/target/OM-2007/applications/openmoko-appmanager-demo/src/detail-area.h
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-appmanager-demo/src/detail-area.h 2006-11-30 20:48:23 UTC (rev 275)
+++ trunk/src/target/OM-2007/applications/openmoko-appmanager-demo/src/detail-area.h 2006-12-01 06:40:24 UTC (rev 276)
@@ -26,5 +26,7 @@
GtkWidget *detail_area_new (ApplicationManagerData *appdata);
+void detail_area_update_info (ApplicationManagerData *appdata);
+
#endif
Modified: trunk/src/target/OM-2007/applications/openmoko-appmanager-demo/src/navigation-area.c
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-appmanager-demo/src/navigation-area.c 2006-11-30 20:48:23 UTC (rev 275)
+++ trunk/src/target/OM-2007/applications/openmoko-appmanager-demo/src/navigation-area.c 2006-12-01 06:40:24 UTC (rev 276)
@@ -21,7 +21,33 @@
#include "appmanager-window.h"
#include "navigation-area.h"
+#include "errorcode.h"
+#include "detail-area.h"
+/**
+ * @brief The callback function of the signal "cursor-changed"
+ */
+void
+on_treeview_cursor_changed (GtkTreeView *treeview,
+ gpointer user_data)
+{
+ g_debug ("Call the on_treeview_cursor_changed");
+
+ detail_area_update_info ((ApplicationManagerData *) user_data);
+}
+
+/**
+ * @brief The callback function of the signal "unselect-all"
+ */
+gboolean
+on_treeview_unselect_all (GtkTreeView *treeview,
+ gpointer user_data)
+{
+ g_debug ("Call the on_treeview_unselect_all");
+
+ return FALSE;
+}
+
static GtkListStore *
create_package_list_store (void)
{
@@ -59,7 +85,6 @@
col = gtk_tree_view_column_new ();
gtk_tree_view_column_set_title (col, _("S"));
gtk_tree_view_column_set_sizing (col, GTK_TREE_VIEW_COLUMN_AUTOSIZE);
- //gtk_tree_view_column_set_fixed_width (col, 20);
renderer = gtk_cell_renderer_pixbuf_new ();
gtk_tree_view_column_pack_start (col, renderer, FALSE);
@@ -73,7 +98,6 @@
col = gtk_tree_view_column_new ();
gtk_tree_view_column_set_title (col, _("Name"));
gtk_tree_view_column_set_sizing (col, GTK_TREE_VIEW_COLUMN_AUTOSIZE);
- //gtk_tree_view_column_set_fixed_width (col, 240);
renderer = gtk_cell_renderer_text_new ();
gtk_tree_view_column_pack_start (col, renderer, FALSE);
@@ -99,9 +123,121 @@
model = GTK_TREE_MODEL (create_package_list_store ());
gtk_tree_view_set_model (GTK_TREE_VIEW (treeview), model);
g_object_unref (model);
+ // FIXME Set the treeview as the single selection mode now.
+ // Maybe it uses the multi selection mode in the feature.
+ gtk_tree_selection_set_mode (gtk_tree_view_get_selection (GTK_TREE_VIEW (treeview)),
+ GTK_SELECTION_SINGLE);
scrollwindow = GTK_WIDGET (moko_tree_view_put_into_scrolled_window (MOKO_TREE_VIEW (treeview)));
application_manager_data_set_tvpkglist (appdata, treeview);
+ // Connect signal to the treeview
+ g_signal_connect ((gpointer) treeview, "cursor_changed",
+ G_CALLBACK (on_treeview_cursor_changed),
+ appdata);
+
+ g_signal_connect ((gpointer) treeview, "unselect_all",
+ G_CALLBACK (on_treeview_cursor_changed),
+ appdata);
+
+
return scrollwindow;
}
+
+/**
+ * @brief Insert test data
+ */
+gint
+navigation_area_insert_test_data (ApplicationManagerData *appdata)
+{
+ GtkWidget *treeview;
+
+ GtkTreeModel *model;
+ GtkListStore *store;
+ GtkTreeIter iter;
+ GdkPixbuf *pix = NULL;
+
+ treeview = application_manager_get_tvpkglist (appdata);
+ if (treeview == NULL)
+ {
+ g_debug ("Treeview not init correctly");
+ return OP_ERROR;
+ }
+ model = gtk_tree_view_get_model (GTK_TREE_VIEW (treeview));
+ store = GTK_LIST_STORE (model);
+ if (store == NULL)
+ {
+ g_debug ("The store of package list not init correctly");
+ return OP_ERROR;
+ }
+
+ g_object_ref (model);
+ gtk_tree_view_set_model (GTK_TREE_VIEW (treeview), NULL);
+ gtk_list_store_clear (store);
+
+ pix = application_manager_data_get_status_pixbuf (appdata, PKG_STATUS_AVAILABLE);
+ gtk_list_store_append (store, &iter);
+ gtk_list_store_set (store, &iter,
+ COL_STATUS, pix,
+ COL_NAME, "test-core",
+ COL_SIZE, "11k",
+ COL_POINTER, NULL,
+ -1);
+
+ pix = application_manager_data_get_status_pixbuf (appdata, PKG_STATUS_INSTALLED);
+ gtk_list_store_append (store, &iter);
+ gtk_list_store_set (store, &iter,
+ COL_STATUS, pix,
+ COL_NAME, "test-vim",
+ COL_SIZE, "21k",
+ COL_POINTER, NULL,
+ -1);
+
+ pix = application_manager_data_get_status_pixbuf (appdata, PKG_STATUS_UPGRADEABLE);
+ gtk_list_store_append (store, &iter);
+ gtk_list_store_set (store, &iter,
+ COL_STATUS, pix,
+ COL_NAME, "test-game",
+ COL_SIZE, "188k",
+ COL_POINTER, NULL,
+ -1);
+
+ pix = application_manager_data_get_status_pixbuf (appdata, PKG_STATUS_AVAILABLE_MARK_FOR_INSTALL);
+ gtk_list_store_append (store, &iter);
+ gtk_list_store_set (store, &iter,
+ COL_STATUS, pix,
+ COL_NAME, "test-dialer",
+ COL_SIZE, "211k",
+ COL_POINTER, NULL,
+ -1);
+
+ gtk_tree_view_set_model (GTK_TREE_VIEW(treeview), model);
+ g_object_unref (model);
+
+ return OP_SUCCESS;
+}
+
+/**
+ * @brief Get the name that the roll was selected from the treeview
+ * @param treeview The treeview
+ * @return The package name.
+ * -If there is not any row selected, it will return NULL.
+ * -If the return is not NULL, it must be freed by g_free.
+ */
+gchar *
+treeview_get_selected_name (GtkWidget *treeview)
+{
+ GtkTreeModel *model;
+ GtkTreeIter iter;
+ GtkTreeSelection *selection;
+ gchar *name = NULL;
+
+ selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (treeview));
+ if (gtk_tree_selection_get_selected (selection, &model, &iter))
+ {
+ gtk_tree_model_get (model, &iter, COL_NAME, &name, -1);
+ return name;
+ }
+
+ return NULL;
+}
Modified: trunk/src/target/OM-2007/applications/openmoko-appmanager-demo/src/navigation-area.h
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-appmanager-demo/src/navigation-area.h 2006-11-30 20:48:23 UTC (rev 275)
+++ trunk/src/target/OM-2007/applications/openmoko-appmanager-demo/src/navigation-area.h 2006-12-01 06:40:24 UTC (rev 276)
@@ -34,4 +34,8 @@
GtkWidget *navigation_area_new (ApplicationManagerData *appdata);
+gint navigation_area_insert_test_data (ApplicationManagerData *appdata);
+
+gchar *treeview_get_selected_name (GtkWidget *treeview);
+
#endif
Modified: trunk/src/target/OM-2007/applications/openmoko-appmanager-demo/src/package-list.c
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-appmanager-demo/src/package-list.c 2006-11-30 20:48:23 UTC (rev 275)
+++ trunk/src/target/OM-2007/applications/openmoko-appmanager-demo/src/package-list.c 2006-12-01 06:40:24 UTC (rev 276)
@@ -236,37 +236,17 @@
g_free (seclist);
}
-
/**
- * @brief Build a detailed index for the packages list in the application
- * manager data
- * @param appdata The application manager data
- * @return If success, return OP_SUCCESS, else return error code
+ * @brief Clear the old index
*/
-gint
-package_list_build_index (ApplicationManagerData *appdata)
+static void
+package_list_clear_old_index (ApplicationManagerData *appdata)
{
- PKG_LIST_HEAD *pkglist;
-
SectionList *sectionlist = NULL;
PackageList *installed = NULL;
PackageList *upgrade = NULL;
PackageList *selected = NULL;
- // Get the package list from application manager data
- pkglist = (PKG_LIST_HEAD *) application_manager_data_get_pkglist (appdata);
- if (pkglist == NULL)
- {
- g_debug ("The package list is not available");
- return OP_ERROR;
- }
-
- if (pkglist->pkg_list == NULL)
- {
- g_debug ("The package list is not available");
- return OP_ERROR;
- }
-
// Get the section list from the application manager data
// If the section list is not NULL, clear it.
sectionlist = (SectionList *) application_manager_data_get_sectionlist (appdata);
@@ -309,8 +289,43 @@
selected = NULL;
application_manager_data_set_upgrade_list (appdata, selected);
}
+}
+
+/**
+ * @brief Build a detailed index for the packages list in the application
+ * manager data
+ * @param appdata The application manager data
+ * @return If success, return OP_SUCCESS, else return error code
+ */
+gint
+package_list_build_index (ApplicationManagerData *appdata)
+{
+ PKG_LIST_HEAD *pkglist;
+
+ SectionList *sectionlist = NULL;
+ //PackageList *installed = NULL;
+ //PackageList *upgrade = NULL;
+ //PackageList *selected = NULL;
+
+ // Get the package list from application manager data
+ pkglist = (PKG_LIST_HEAD *) application_manager_data_get_pkglist (appdata);
+ if (pkglist == NULL)
+ {
+ g_debug ("The package list is not available");
+ return OP_ERROR;
+ }
+
+ if (pkglist->pkg_list == NULL)
+ {
+ g_debug ("The package list is not available");
+ return OP_ERROR;
+ }
+
+ package_list_clear_old_index (appdata);
+
sectionlist = g_malloc (sizeof (SectionList));
return OP_SUCCESS;
}
+
More information about the commitlog
mailing list