summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRr422018-06-20 12:13:24 +0530
committerRr422018-06-20 12:13:24 +0530
commitcae95cbf69ebe440ebcda9b21ab895e4e2bdf719 (patch)
treeba72d57c0dc85c84a0888560ca39628c44295bf6
parent176a2daf611cc505896743f30de23bd391abd0bb (diff)
parente4c4f5ea11291e551967f5240f53c43895771ffb (diff)
downloadLDMicroGtk-cae95cbf69ebe440ebcda9b21ab895e4e2bdf719.tar.gz
LDMicroGtk-cae95cbf69ebe440ebcda9b21ab895e4e2bdf719.tar.bz2
LDMicroGtk-cae95cbf69ebe440ebcda9b21ab895e4e2bdf719.zip
merge update
-rw-r--r--ldmicro/draw_outputdev.cpp1
-rw-r--r--ldmicro/includes/ldmicro.h4
-rw-r--r--ldmicro/ldmicro.cpp43
-rw-r--r--ldmicro/lib/freezeLD/freezeLD.cpp16
-rw-r--r--ldmicro/lib/linuxUI/linuxLD.h10
-rw-r--r--ldmicro/lib/linuxUI/linuxUI.cpp24
-rw-r--r--ldmicro/lib/linuxUI/linuxUI.h10
-rw-r--r--ldmicro/maincontrols.cpp128
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;