}
}
+void details_clicked_cb(GtkWidget *widget, gpointer selection)
+{
+ GtkListStore *store;
+ GtkTreeModel *model;
+ GtkTreeIter iter;
+ char *target_name;
+ char *virtual_target_path;
+ char *info_file;
+ int info_file_status;
+
+ store = GTK_LIST_STORE(gtk_tree_view_get_model(GTK_TREE_VIEW (list)));
+ model = gtk_tree_view_get_model (GTK_TREE_VIEW (list));
+
+ if (gtk_tree_model_get_iter_first(model, &iter) == FALSE)
+ return;
+
+ if (gtk_tree_selection_get_selected(GTK_TREE_SELECTION(selection),
+ &model, &iter)) {
+ //get target name
+ gtk_tree_model_get(model, &iter, TARGET_NAME, &target_name, -1);
+
+ virtual_target_path = get_virtual_target_path(target_name);
+ info_file = g_strdup_printf("%sconfig.ini", virtual_target_path);
+ info_file_status = is_exist_file(info_file);
+
+ //if targetlist exist but config file not exists
+ if(info_file_status == -1 || info_file_status == FILE_NOT_EXISTS)
+ {
+ ERR( "target info file not exists : %s\n", target_name);
+ return;
+ }
+ //get info from config.ini
+ char *resolution= get_config_value(info_file, HARDWARE_GROUP, RESOLUTION_KEY);
+ char *sdcard_type= get_config_value(info_file, HARDWARE_GROUP, SDCARD_TYPE_KEY);
+ char *sdcard_path= get_config_value(info_file, HARDWARE_GROUP, SDCARD_PATH_KEY);
+ char *ram_size = get_config_value(info_file, HARDWARE_GROUP, RAM_SIZE_KEY);
+ char *dpi = get_config_value(info_file, HARDWARE_GROUP, DPI_KEY);
+ char *disk_path = get_config_value(info_file, HARDWARE_GROUP, DISK_PATH_KEY);
+
+ char *arch = (char*)g_getenv("EMULATOR_ARCH");
+ char *sdcard_detail = NULL;
+ char *sdcard_detail_path = NULL;
+ char *ram_size_detail = NULL;
+ char *disk_path_detail = NULL;
+ char *sdcard_path_detail = NULL;
+ if(strcmp(sdcard_type, "0") == 0)
+ {
+ sdcard_detail = g_strdup_printf("Not supported");
+ sdcard_detail_path = g_strdup_printf(" ");
+ }
+ else
+ {
+ sdcard_detail = g_strdup_printf("Supported");
+ sdcard_path_detail = g_strdup_printf("%s%s", get_bin_path(), sdcard_path);
+ }
+
+ ram_size_detail = g_strdup_printf("%sMB", ram_size);
+ disk_path_detail = g_strdup_printf("%s%s", get_bin_path(), disk_path);
+
+ char *details = g_strdup_printf("Name: %s\nCPU: %s\nResolution: %s\nRam size: %s\nDPI: %s\nSD card: %s\nSD path: %s\nDisk path: %s",
+ target_name, arch, resolution, ram_size_detail, dpi, sdcard_detail, sdcard_path_detail, disk_path_detail);
+ show_message("Virtual Target details", details);
+
+ g_free(resolution);
+ g_free(sdcard_type);
+ g_free(sdcard_path);
+ g_free(ram_size);
+ g_free(dpi);
+ g_free(disk_path);
+ g_free(sdcard_detail);
+ g_free(sdcard_detail_path);
+ g_free(ram_size_detail);
+ g_free(disk_path_detail);
+ g_free(sdcard_path_detail);
+ g_free(details);
+ return;
+ }
+
+ show_message("Warning", "Target is not selected. Firstly select a target and press the button.");
+}
+
+
void delete_clicked_cb(GtkWidget *widget, gpointer selection)
{
GtkListStore *store;
void exit_vtm(void)
{
INFO( "virtual target manager exit \n");
-
window_hash_destroy();
gtk_main_quit();
}
#else
gtk_tree_view_column_set_alignment(column,0.0);
#endif
- gtk_tree_view_column_set_min_width(column,100);
+ gtk_tree_view_column_set_min_width(column,130);
gtk_tree_view_append_column(GTK_TREE_VIEW(list), column);
column = gtk_tree_view_column_new_with_attributes("Ram size", cell, "text", RAM_SIZE, NULL);
#else
gtk_tree_view_column_set_alignment(column,0.0);
#endif
- gtk_tree_view_column_set_min_width(column,100);
+ gtk_tree_view_column_set_min_width(column,50);
gtk_tree_view_append_column(GTK_TREE_VIEW(list), column);
column = gtk_tree_view_column_new_with_attributes("Resolution", cell, "text", RESOLUTION, NULL);
#else
gtk_tree_view_column_set_alignment(column,0.0);
#endif
- gtk_tree_view_column_set_min_width(column,100);
+ gtk_tree_view_column_set_min_width(column,70);
gtk_tree_view_append_column(GTK_TREE_VIEW(list), column);
gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sc_win), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
gtk_container_add(GTK_CONTAINER(sc_win), list);
GtkWidget *delete_button = (GtkWidget *)gtk_builder_get_object(g_builder, "button2");
GtkWidget *modify_button = (GtkWidget *)gtk_builder_get_object(g_builder, "button3");
GtkWidget *activate_button = (GtkWidget *)gtk_builder_get_object(g_builder, "button4");
+ GtkWidget *details_button = (GtkWidget *)gtk_builder_get_object(g_builder, "button5");
g_main_window = (GtkWidget *)gtk_builder_get_object(g_builder, "window1");
gtk_window_set_icon_from_file(GTK_WINDOW(g_main_window), icon_image, NULL);
GtkWidget *x86_radiobutton = (GtkWidget *)gtk_builder_get_object(g_builder, "radiobutton8");
selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(list));
g_signal_connect(create_button, "clicked", G_CALLBACK(show_create_window), NULL);
g_signal_connect(delete_button, "clicked", G_CALLBACK(delete_clicked_cb), selection);
+ g_signal_connect(details_button, "clicked", G_CALLBACK(details_clicked_cb), selection);
g_signal_connect(modify_button, "clicked", G_CALLBACK(modify_clicked_cb), selection);
g_signal_connect(activate_button, "clicked", G_CALLBACK(activate_clicked_cb), selection);
g_signal_connect(G_OBJECT(g_main_window), "delete-event", G_CALLBACK(exit_vtm), NULL);
<!-- interface-requires gtk+ 2.10 -->
<!-- interface-naming-policy project-wide -->
<object class="GtkWindow" id="window1">
- <property name="width_request">410</property>
+ <property name="width_request">430</property>
<property name="height_request">280</property>
<property name="border_width">6</property>
<property name="title" translatable="yes">Virtual Target Manager</property>
- <property name="resizable">False</property>
<property name="window_position">center</property>
<signal name="destroy" handler="gtk_main_quit"/>
<child>
</object>
<packing>
<property name="expand">False</property>
- <property name="fill">False</property>
<property name="position">1</property>
</packing>
</child>
</child>
</object>
<packing>
- <property name="expand">False</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkVBox" id="vbox2">
+ <property name="width_request">89</property>
+ <property name="height_request">73</property>
<property name="visible">True</property>
+ <property name="spacing">3</property>
<child>
- <object class="GtkHBox" id="hbox9">
- <property name="visible">True</property>
- <child>
- <object class="GtkFrame" id="frame5">
- <property name="visible">True</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
- <child>
- <object class="GtkAlignment" id="alignment4">
- <property name="visible">True</property>
- <property name="left_padding">12</property>
- <child>
- <placeholder/>
- </child>
- </object>
- </child>
- <child type="label">
- <object class="GtkLabel" id="label2">
- <property name="visible">True</property>
- <property name="use_markup">True</property>
- </object>
- </child>
- </object>
- <packing>
- <property name="position">0</property>
- </packing>
- </child>
- </object>
- <packing>
- <property name="position">0</property>
- </packing>
+ <placeholder/>
</child>
<child>
<object class="GtkButton" id="button1">
<property name="receives_default">True</property>
</object>
<packing>
- <property name="padding">5</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="padding">1</property>
<property name="position">1</property>
</packing>
</child>
<property name="receives_default">True</property>
</object>
<packing>
- <property name="padding">4</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="padding">1</property>
<property name="position">2</property>
</packing>
</child>
<property name="receives_default">True</property>
</object>
<packing>
- <property name="padding">5</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="padding">1</property>
<property name="position">3</property>
</packing>
</child>
<child>
+ <object class="GtkButton" id="button5">
+ <property name="label" translatable="yes">Details</property>
+ <property name="height_request">28</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="padding">1</property>
+ <property name="position">-1</property>
+ </packing>
+ </child>
+ <child>
<object class="GtkButton" id="button4">
<property name="label" translatable="yes">Activate</property>
- <property name="height_request">28</property>
+ <property name="height_request">40</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<signal name="clicked" handler="activate_clicked_cb"/>
</object>
<packing>
- <property name="padding">5</property>
- <property name="position">4</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="padding">11</property>
+ <property name="position">5</property>
</packing>
</child>
</object>
<packing>
+ <property name="expand">False</property>
<property name="padding">4</property>
<property name="position">-1</property>
</packing>