summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRr422018-06-25 20:18:29 +0530
committerRr422018-06-25 20:18:29 +0530
commit0dad08dd60d4de845db5a7f0d0948b3503c46d4a (patch)
tree8b1b45b97f26f4d02db910d8c6f6706178908222
parent7569db65471fb0ab60f80cc8ec871460a4360835 (diff)
downloadLDMicroGtk-0dad08dd60d4de845db5a7f0d0948b3503c46d4a.tar.gz
LDMicroGtk-0dad08dd60d4de845db5a7f0d0948b3503c46d4a.tar.bz2
LDMicroGtk-0dad08dd60d4de845db5a7f0d0948b3503c46d4a.zip
Updated Analog scroll popup.
-rw-r--r--ldmicro/iolist.cpp27
-rw-r--r--ldmicro/ldmicro.cpp8
2 files changed, 23 insertions, 12 deletions
diff --git a/ldmicro/iolist.cpp b/ldmicro/iolist.cpp
index aa2e2ac..33ec2d9 100644
--- a/ldmicro/iolist.cpp
+++ b/ldmicro/iolist.cpp
@@ -397,6 +397,7 @@ void SaveIoListToFile(FILE *f)
static gboolean AnalogSliderDialogKeyboardProc(GtkWidget* widget, GdkEventKey* event, gpointer name)
{
// g_print("key click!\n");
+
SWORD v = (SWORD)gtk_range_get_value(GTK_RANGE(AnalogSliderTrackbar));
SetAdcShadow((char*)name, v);
if (AnalogSliderDone == TRUE || AnalogSliderCancel == TRUE)
@@ -464,6 +465,8 @@ void ShowAnalogSliderPopup(char *name)
return;
}
+ // int x, y;
+ // gtk_window_get_position(GTK_WINDOW(MainWindow), &x, &y);
int left = GLOBAL_mouse_last_clicked_x - 10;
// try to put the slider directly under the cursor (though later we might
// realize that that would put the popup off the screen)
@@ -475,18 +478,24 @@ void ShowAnalogSliderPopup(char *name)
// if(top + 110 >= r.bottom) {
// top = r.bottom - 110;
// }
- if(top < 0) top = 30;
- if(left < 0) left = 50;
+ if(top < 0) top = 100;
+ if(left < 0) left = 100;
- AnalogSliderMain = gtk_window_new(GTK_WINDOW_POPUP);
- gtk_window_set_title(GTK_WINDOW(AnalogSliderMain), "I/O Pin");
- gtk_window_resize (GTK_WINDOW(AnalogSliderMain), 30, 100);
- gtk_window_move(GTK_WINDOW(AnalogSliderMain), left, top);
+ if (!GTK_IS_WINDOW(AnalogSliderMain))
+ {
+ AnalogSliderMain = gtk_window_new(GTK_WINDOW_POPUP);
+ gtk_window_set_title(GTK_WINDOW(AnalogSliderMain), "I/O Pin");
+ gtk_window_resize (GTK_WINDOW(AnalogSliderMain), 30, 100);
+ gtk_window_move(GTK_WINDOW(AnalogSliderMain), left, top);
+ }
- AnalogSliderTrackbar = gtk_scale_new_with_range (GTK_ORIENTATION_VERTICAL,
+ if (!GTK_IS_SCALE(AnalogSliderTrackbar))
+ {
+ AnalogSliderTrackbar = gtk_scale_new_with_range (GTK_ORIENTATION_VERTICAL,
0,
maxVal,
1);
+ }
gtk_range_set_value (GTK_RANGE(AnalogSliderTrackbar), currentVal);
// gtk_scale_add_mark (GTK_SCALE(AnalogSliderTrackbar), (maxVal + 1)/8, GTK_POS_LEFT, NULL);
@@ -509,7 +518,9 @@ void ShowAnalogSliderPopup(char *name)
gtk_container_add(GTK_CONTAINER(AnalogSliderMain), AnalogSliderTrackbar);
// SetFocus(AnalogSliderTrackbar);
- // gtk_window_set_focus (GTK_WINDOW(AnalogSliderMain), AnalogSliderTrackbar);
+ gtk_window_set_focus_visible (GTK_WINDOW(AnalogSliderMain), TRUE);
+ gtk_window_set_keep_above (GTK_WINDOW(AnalogSliderMain), TRUE);
+ // gtk_window_set_focus (, AnalogSliderTrackbar);
g_signal_connect (AnalogSliderMain, "key-press-event",
G_CALLBACK(AnalogSliderDialogKeyboardProc), (PVOID)name);
diff --git a/ldmicro/ldmicro.cpp b/ldmicro/ldmicro.cpp
index dda8f99..1a39b53 100644
--- a/ldmicro/ldmicro.cpp
+++ b/ldmicro/ldmicro.cpp
@@ -666,8 +666,8 @@ gboolean LD_GTK_mouse_click_hook(GtkWidget *widget, GdkEvent *event, gpointer us
case GDK_BUTTON_PRESS:
if (event->button.button == 1) /// left click
{
- GLOBAL_mouse_last_clicked_x = event->button.x;
- GLOBAL_mouse_last_clicked_y = event->button.y;
+ GLOBAL_mouse_last_clicked_x = event->button.x_root;
+ GLOBAL_mouse_last_clicked_y = event->button.y_root;
int x = event->button.x;
int y = event->button.y - 30 + gtk_adjustment_get_value(adjustment);
@@ -689,8 +689,8 @@ gboolean LD_GTK_mouse_click_hook(GtkWidget *widget, GdkEvent *event, gpointer us
case GDK_2BUTTON_PRESS:
if (event->button.button == 1) /// left click
{
- GLOBAL_mouse_last_clicked_x = event->button.x;
- GLOBAL_mouse_last_clicked_y = event->button.y;
+ GLOBAL_mouse_last_clicked_x = event->button.x_root;
+ GLOBAL_mouse_last_clicked_y = event->button.y_root;
int x = event->button.x;
int y = event->button.y - 30 + gtk_adjustment_get_value(adjustment);