#include <gtk/gtk.h>
GtkWidget *entry = NULL;
GtkWidget *scale = NULL;
static void cli (GtkWidget *widget, gpointer data)
{
gchar func[20];
gint para[10];
gint paraNum=0;
const gchar * input=gtk_entry_get_text(GTK_ENTRY (entry));
char *token = strtok(input, " ");
if(token){
strcpy(func,token);
//puts(func);
token = strtok(NULL, " ");
while(token) {
//puts(token);
para[paraNum++]=atoi(token);
token = strtok(NULL, " ");
}
g_print ("test function:gtk_scale_%s\npara:\n",func);
for(gint i=0;i<paraNum;i++){
g_print ("%d\n",para[i]);
}
if(strcmp(func,"get_digits")==0){
g_print ("gtk_scale_%s result:%d:\n",func,gtk_scale_get_digits (GTK_SCALE (scale)));
}
else if(strcmp(func,"get_draw_value")==0){
g_print ("gtk_scale_%s result:%s:\n",func,gtk_scale_get_draw_value (GTK_SCALE (scale))?"true":"false");
}
else if(strcmp(func,"set_draw_value")==0){
gtk_scale_set_draw_value (GTK_SCALE (scale),para[0]);
}
else if(strcmp(func,"set_digits")==0){
gtk_scale_set_draw_value (GTK_SCALE (scale),para[0]);
}
else if(strcmp(func,"add_mark")==0){
gtk_scale_add_mark (GTK_SCALE (scale),para[0],para[1],NULL);
}
}
}
GtkWidget *
do_scale (GtkWidget *do_widget)
{
static GtkWidget *window = NULL;
GtkWidget *button = NULL;
if (!window)
{
GtkBuilder *builder;
builder = gtk_builder_new_from_file ("scale.ui");
gtk_builder_connect_signals (builder, NULL);
window = GTK_WIDGET (gtk_builder_get_object (builder, "window1"));
gtk_window_set_screen (GTK_WINDOW (window),
gtk_widget_get_screen (do_widget));
g_signal_connect (window, "destroy",
G_CALLBACK (gtk_widget_destroyed), &window);
scale= GTK_WIDGET (gtk_builder_get_object (builder, "sl1"));
entry= GTK_WIDGET (gtk_builder_get_object (builder, "et1"));
button= GTK_WIDGET (gtk_builder_get_object (builder, "bt1"));
g_signal_connect (button, "clicked", G_CALLBACK (cli), NULL);
g_object_unref (builder);
}
if (!gtk_widget_get_visible (window))
gtk_widget_show_all (window);
else
gtk_widget_destroy (window);
return window;
}
int main (int argc,char *argv[])
{
GtkWidget *main_window;
gtk_init(&argc, &argv);
main_window=do_scale(NULL);
gtk_widget_show_all(main_window);
gtk_main();
return 0;
}
