diff options
author | Rr42 | 2018-06-20 12:13:24 +0530 |
---|---|---|
committer | Rr42 | 2018-06-20 12:13:24 +0530 |
commit | cae95cbf69ebe440ebcda9b21ab895e4e2bdf719 (patch) | |
tree | ba72d57c0dc85c84a0888560ca39628c44295bf6 | |
parent | 176a2daf611cc505896743f30de23bd391abd0bb (diff) | |
parent | e4c4f5ea11291e551967f5240f53c43895771ffb (diff) | |
download | LDMicroGtk-cae95cbf69ebe440ebcda9b21ab895e4e2bdf719.tar.gz LDMicroGtk-cae95cbf69ebe440ebcda9b21ab895e4e2bdf719.tar.bz2 LDMicroGtk-cae95cbf69ebe440ebcda9b21ab895e4e2bdf719.zip |
merge update
-rw-r--r-- | ldmicro/draw_outputdev.cpp | 1 | ||||
-rw-r--r-- | ldmicro/includes/ldmicro.h | 4 | ||||
-rw-r--r-- | ldmicro/ldmicro.cpp | 43 | ||||
-rw-r--r-- | ldmicro/lib/freezeLD/freezeLD.cpp | 16 | ||||
-rw-r--r-- | ldmicro/lib/linuxUI/linuxLD.h | 10 | ||||
-rw-r--r-- | ldmicro/lib/linuxUI/linuxUI.cpp | 24 | ||||
-rw-r--r-- | ldmicro/lib/linuxUI/linuxUI.h | 10 | ||||
-rw-r--r-- | ldmicro/maincontrols.cpp | 128 |
8 files changed, 141 insertions, 95 deletions
diff --git a/ldmicro/draw_outputdev.cpp b/ldmicro/draw_outputdev.cpp index 5721d34..363aef0 100644 --- a/ldmicro/draw_outputdev.cpp +++ b/ldmicro/draw_outputdev.cpp @@ -295,6 +295,7 @@ void PaintWindow() r.left += POS_WIDTH*FONT_WIDTH*ColsAvailable + 2; r.right += POS_WIDTH*FONT_WIDTH*ColsAvailable + 2; FillRect(Hdc, &r, InSimulationMode ? BusRightBus : BusBrush); + InvalidateRect(DrawWindow, NULL, FALSE); CursorDrawn = FALSE; diff --git a/ldmicro/includes/ldmicro.h b/ldmicro/includes/ldmicro.h index 719a256..23d82fb 100644 --- a/ldmicro/includes/ldmicro.h +++ b/ldmicro/includes/ldmicro.h @@ -604,8 +604,8 @@ void CheckHeap(char *file, int line); // maincontrols.cpp void MakeMainWindowControls(void); HMENU MakeMainWindowMenus(void); -void VscrollProc(WPARAM wParam); -void HscrollProc(WPARAM wParam); +void VscrollProc(int wParam); +void HscrollProc(int wParam); void GenerateIoListDontLoseSelection(void); void RefreshControlsToSettings(void); void MainWindowResized(void); diff --git a/ldmicro/ldmicro.cpp b/ldmicro/ldmicro.cpp index b961953..cdc9e7f 100644 --- a/ldmicro/ldmicro.cpp +++ b/ldmicro/ldmicro.cpp @@ -1012,23 +1012,31 @@ gboolean LD_GTK_mouse_scroll_hook(GtkWidget *widget, GdkEvent *event, gpointer u * WM_VSCROLL, WM_HSCROLL, WM_MOUSEWHEEL */ + MainWindowResized(); + PaintWindow(); + switch(event->scroll.direction) { case GDK_SCROLL_UP: + VscrollProc(SB_LINEUP); + break; case GDK_SCROLL_DOWN: - // VscrollProc(wParam); + VscrollProc(SB_LINEDOWN); break; case GDK_SCROLL_LEFT: + HscrollProc(SB_LINEUP); + break; case GDK_SCROLL_RIGHT: - // HscrollProc(wParam); + HscrollProc(SB_LINEDOWN); break; case GDK_SCROLL_SMOOTH: - // if((GET_WHEEL_DELTA_WPARAM(wParam)) > 0) { - // VscrollProc(SB_LINEUP); - // } else { - // VscrollProc(SB_LINEDOWN); - // } - // gdk_event_get_scroll_deltas (const GdkEvent *event, gdouble *delta_x, gdouble *delta_y); + double d_x, d_y; + gdk_event_get_scroll_deltas (event, &d_x, &d_y); + if(d_y > 0) { + VscrollProc(SB_LINEUP); + } else { + VscrollProc(SB_LINEDOWN); + } break; } @@ -1063,6 +1071,8 @@ gboolean LD_WM_Paint_call(HWID widget, HCRDC cr, gpointer data) * WM_PAINT */ + // g_print("draw called----------------------------------\n"); + // guint width, height; // GdkRGBA color; // GtkStyleContext *context; @@ -1071,10 +1081,10 @@ gboolean LD_WM_Paint_call(HWID widget, HCRDC cr, gpointer data) // width = gtk_widget_get_allocated_width (widget); // height = gtk_widget_get_allocated_height (widget); - // // g_print("w = %i\n", width); - // // g_print("h = %i\n", height); + // g_print("w = %i\n", width); + // g_print("h = %i\n", height); - // // SetBkColor(widget, cr, HighlightColours.bg); + // SetBkColor(widget, cr, HighlightColours.bg); // gtk_render_background (context, cr, 0, 0, width, height); @@ -1093,8 +1103,17 @@ gboolean LD_WM_Paint_call(HWID widget, HCRDC cr, gpointer data) // cairo_fill (cr); - Hdc = cr; + // SetBkColor(DrawWindow, cr, InSimulationMode ? HighlightColours.simBg : + // HighlightColours.bg); + // SetTextColor(cr, InSimulationMode ? HighlightColours.simRungNum : + // HighlightColours.rungNum); + // SelectObject(cr, FixedWidthFont); + // for (int xp = 0; xp<= width; xp += 7) + // for (int yp = 0; yp <= height; yp += 7) + // TextOut(DrawWindow, cr, xp, yp, "H", 1); + Hdc = cr; + /// This draws the schematic. PaintWindow(); diff --git a/ldmicro/lib/freezeLD/freezeLD.cpp b/ldmicro/lib/freezeLD/freezeLD.cpp index 880dfab..b9cafb2 100644 --- a/ldmicro/lib/freezeLD/freezeLD.cpp +++ b/ldmicro/lib/freezeLD/freezeLD.cpp @@ -20,8 +20,8 @@ void FreezeWindowPosF(HWID hwid, char *subKey, char *name) { //g_print("freezing"); char* Ld_CWD = (char *)malloc(MAX_PATH); - getcwd(Ld_CWD, sizeof(Ld_CWD)); - + getcwd(Ld_CWD, MAX_PATH); + if (!Ld_CWD) return; char* moveToKeyLocatin = (char *)malloc(strlen(name) + MAX_PATH); @@ -144,8 +144,8 @@ static void Clamp(LONG *v, LONG min, LONG max) void ThawWindowPosF(HWID hwid, char *subKey, char *name) { char* Ld_CWD = (char *)malloc(MAX_PATH); - getcwd(Ld_CWD, sizeof(Ld_CWD)); - + getcwd(Ld_CWD, MAX_PATH); + if (!Ld_CWD) return; @@ -254,7 +254,7 @@ void ThawWindowPosF(HWID hwid, char *subKey, char *name) void FreezeDWORDF(DWORD val, char *subKey, char *name) { char* Ld_CWD = (char *)malloc(MAX_PATH); - getcwd(Ld_CWD, sizeof(Ld_CWD)); + getcwd(Ld_CWD, MAX_PATH); if (!Ld_CWD) return; @@ -294,7 +294,7 @@ void FreezeDWORDF(DWORD val, char *subKey, char *name) DWORD ThawDWORDF(DWORD val, char *subKey, char *name) { char* Ld_CWD = (char *)malloc(MAX_PATH); - getcwd(Ld_CWD, sizeof(Ld_CWD)); + getcwd(Ld_CWD, MAX_PATH); if (!Ld_CWD) return val; @@ -339,7 +339,7 @@ DWORD ThawDWORDF(DWORD val, char *subKey, char *name) void FreezeStringF(char *val, char *subKey, char *name) { char* Ld_CWD = (char *)malloc(MAX_PATH); - getcwd(Ld_CWD, sizeof(Ld_CWD)); + getcwd(Ld_CWD, MAX_PATH); if (!Ld_CWD) return; @@ -377,7 +377,7 @@ void FreezeStringF(char *val, char *subKey, char *name) void ThawStringF(char *val, int max, char *subKey, char *name) { char* Ld_CWD = (char *)malloc(MAX_PATH); - getcwd(Ld_CWD, sizeof(Ld_CWD)); + getcwd(Ld_CWD, MAX_PATH); if (!Ld_CWD) return; diff --git a/ldmicro/lib/linuxUI/linuxLD.h b/ldmicro/lib/linuxUI/linuxLD.h index 8a3e3a2..80f4471 100644 --- a/ldmicro/lib/linuxUI/linuxLD.h +++ b/ldmicro/lib/linuxUI/linuxLD.h @@ -16,6 +16,7 @@ #define CALLBACK #define CONST const +/// Meamory flags #define HEAP_ZERO_MEMORY 0x00000008 /// Image loading flags @@ -24,7 +25,6 @@ /// Macro functions #define max(_A, _B) std::max(_A, _B) -// #define min(_A, _B) std::min(_A, _B) /// Typedefs //typedef int64_t __int64; @@ -114,6 +114,14 @@ typedef class tagColorReferance: public GdkRGBA{ this->alpha = 1.0; } + bool operator== (tagColorReferance& arg1) + { + if( ((int)arg1.red == (int)this->red) && ((int)arg1.green == (int)this->green) && ((int)arg1.blue == (int)this->blue) ) + return true; + else + return false; + } + GdkRGBA* getThis() { return this; diff --git a/ldmicro/lib/linuxUI/linuxUI.cpp b/ldmicro/lib/linuxUI/linuxUI.cpp index 062d10c..d9fbd3f 100644 --- a/ldmicro/lib/linuxUI/linuxUI.cpp +++ b/ldmicro/lib/linuxUI/linuxUI.cpp @@ -266,20 +266,21 @@ void SetBkColor(HWID widget, HCRDC hcr, COLORREF bkCol) gtk_widget_override_background_color(GTK_WIDGET(widget), GTK_STATE_FLAG_NORMAL, &bkCol); - GtkStyleContext *context; + gint width = gtk_widget_get_allocated_width (widget); + gint height = gtk_widget_get_allocated_height (widget); + COLORREF col; + GtkStyleContext *context; context = gtk_widget_get_style_context (widget); - gint width = gtk_widget_get_allocated_width (widget); - gint height = gtk_widget_get_allocated_height (widget); gtk_style_context_get_color (context, - gtk_style_context_get_state (context), - &col); + gtk_style_context_get_state (context), + &col); gdk_cairo_set_source_rgba (hcr, &col); - gtk_render_background (context, hcr, 0, 0, width, height); + cairo_fill (hcr); } void SetTextColor(HCRDC hcr, COLORREF color) @@ -290,7 +291,7 @@ void SetTextColor(HCRDC hcr, COLORREF color) void TextOut(HWID hWid, HCRDC hcr, int nXStart, int nYStart, LPCTSTR lpString, int cchString) { - nYStart += 20; + nYStart += 30; cairo_text_extents_t extents; cairo_text_extents (hcr, lpString, &extents); @@ -301,12 +302,14 @@ void TextOut(HWID hWid, HCRDC hcr, int nXStart, int nYStart, LPCTSTR lpString, i if(nYStart+(extents.height/2.0) >= height) { - height += extents.height; + // g_print("Y extend\n"); + height += extents.height += 50; resize_flag = TRUE; } if (nXStart+(extents.width/2.0) >= width) { + // g_print("X extend\n"); width += extents.width; resize_flag = TRUE; } @@ -320,6 +323,8 @@ void TextOut(HWID hWid, HCRDC hcr, int nXStart, int nYStart, LPCTSTR lpString, i cairo_move_to(hcr, nXStart, nYStart); cairo_show_text(hcr, text); + // g_print("%s", text); + cairo_fill (hcr); } @@ -336,7 +341,10 @@ COLORREF GetTextColor(HCRDC Hdc) BOOL InvalidateRect(HWID hWid, const RECT *lpRect, BOOL bErase) { if(!GDK_IS_WINDOW(hWid)) + { + // g_print("not window\n"); return FALSE; + } if (lpRect == NULL) { diff --git a/ldmicro/lib/linuxUI/linuxUI.h b/ldmicro/lib/linuxUI/linuxUI.h index 961822f..2f13e79 100644 --- a/ldmicro/lib/linuxUI/linuxUI.h +++ b/ldmicro/lib/linuxUI/linuxUI.h @@ -33,6 +33,16 @@ #define MB_ICONWARNING 0x00000040L #define MB_ICONINFORMATION 0x00000080L +/// Scroll +#define SB_LINEUP 0x00000001 +#define SB_PAGEUP 0x00000002 +#define SB_LINEDOWN 0x00000004 +#define SB_PAGEDOWN 0x00000008 +#define SB_TOP 0x00000010 +#define SB_BOTTOM 0x00000020 +#define SB_THUMBTRACK 0x00000040 +#define SB_THUMBPOSITION 0x00000040 + /// open/save file #define OFN_PATHMUSTEXIST 0x00000100L #define OFN_HIDEREADONLY 0x00000200L diff --git a/ldmicro/maincontrols.cpp b/ldmicro/maincontrols.cpp index 60f6a2b..ff7f5a8 100644 --- a/ldmicro/maincontrols.cpp +++ b/ldmicro/maincontrols.cpp @@ -647,37 +647,37 @@ void RefreshScrollbars(void) // Respond to a WM_VSCROLL sent to the main window, presumably by the one and // only vertical scrollbar that it has as a child. //----------------------------------------------------------------------------- -void VscrollProc(WPARAM wParam) +void VscrollProc(int wParam) { - // int prevY = ScrollYOffset; - // switch(LOWORD(wParam)) { - // case SB_LINEUP: - // case SB_PAGEUP: - // if(ScrollYOffset > 0) { - // ScrollYOffset--; - // } - // break; - - // case SB_LINEDOWN: - // case SB_PAGEDOWN: - // if(ScrollYOffset < ScrollYOffsetMax) { - // ScrollYOffset++; - // } - // break; - - // case SB_TOP: - // ScrollYOffset = 0; - // break; - - // case SB_BOTTOM: - // ScrollYOffset = ScrollYOffsetMax; - // break; - - // case SB_THUMBTRACK: - // case SB_THUMBPOSITION: - // ScrollYOffset = HIWORD(wParam); - // break; - // } + int prevY = ScrollYOffset; + switch(wParam) { + case SB_LINEUP: + case SB_PAGEUP: + if(ScrollYOffset > 0) { + ScrollYOffset--; + } + break; + + case SB_LINEDOWN: + case SB_PAGEDOWN: + if(ScrollYOffset < ScrollYOffsetMax) { + ScrollYOffset++; + } + break; + + case SB_TOP: + ScrollYOffset = 0; + break; + + case SB_BOTTOM: + ScrollYOffset = ScrollYOffsetMax; + break; + + // case SB_THUMBTRACK: + // case SB_THUMBPOSITION: + // ScrollYOffset = HIWORD(wParam); + // break; + } // if(prevY != ScrollYOffset) { // SCROLLINFO si; // si.cbSize = sizeof(si); @@ -693,42 +693,42 @@ void VscrollProc(WPARAM wParam) // Respond to a WM_HSCROLL sent to the main window, presumably by the one and // only horizontal scrollbar that it has as a child. //----------------------------------------------------------------------------- -void HscrollProc(WPARAM wParam) +void HscrollProc(int wParam) { - // int prevX = ScrollXOffset; - // switch(LOWORD(wParam)) { - // case SB_LINEUP: - // ScrollXOffset -= FONT_WIDTH; - // break; - - // case SB_PAGEUP: - // ScrollXOffset -= POS_WIDTH*FONT_WIDTH; - // break; - - // case SB_LINEDOWN: - // ScrollXOffset += FONT_WIDTH; - // break; - - // case SB_PAGEDOWN: - // ScrollXOffset += POS_WIDTH*FONT_WIDTH; - // break; - - // case SB_TOP: - // ScrollXOffset = 0; - // break; - - // case SB_BOTTOM: - // ScrollXOffset = ScrollXOffsetMax; - // break; - - // case SB_THUMBTRACK: - // case SB_THUMBPOSITION: - // ScrollXOffset = HIWORD(wParam); - // break; - // } + int prevX = ScrollXOffset; + switch(wParam) { + case SB_LINEUP: + ScrollXOffset -= FONT_WIDTH; + break; + + case SB_PAGEUP: + ScrollXOffset -= POS_WIDTH*FONT_WIDTH; + break; + + case SB_LINEDOWN: + ScrollXOffset += FONT_WIDTH; + break; + + case SB_PAGEDOWN: + ScrollXOffset += POS_WIDTH*FONT_WIDTH; + break; + + case SB_TOP: + ScrollXOffset = 0; + break; + + case SB_BOTTOM: + ScrollXOffset = ScrollXOffsetMax; + break; + + // case SB_THUMBTRACK: + // case SB_THUMBPOSITION: + // ScrollXOffset = HIWORD(wParam); + // break; + } - // if(ScrollXOffset > ScrollXOffsetMax) ScrollXOffset = ScrollXOffsetMax; - // if(ScrollXOffset < 0) ScrollXOffset = 0; + if(ScrollXOffset > ScrollXOffsetMax) ScrollXOffset = ScrollXOffsetMax; + if(ScrollXOffset < 0) ScrollXOffset = 0; // if(prevX != ScrollXOffset) { // SCROLLINFO si; |