2 Commits f17ebf1e74 ... 14bab4df1b

Author SHA1 Message Date
  nsp 14bab4df1b stimpy: add a toolbar 1 year ago
  nsp 81f1ec392c stimpy: working unicode check 1 year ago

+ 5 - 14
stimpy/stimpy/fileio.cpp

@@ -25,7 +25,7 @@ BOOL LoadTextFileToEdit(HWND hEdit, LPWSTR pwszFileName)
 		return false;
 
 	PVOID pszFileText;
-	pszFileText = GlobalAlloc(GPTR, dwFileSize + 1);
+	pszFileText = GlobalAlloc(GPTR, dwFileSize + 2);
 	if(pszFileText == NULL)
 		return false;
 
@@ -34,21 +34,12 @@ BOOL LoadTextFileToEdit(HWND hEdit, LPWSTR pwszFileName)
 	if(!ReadFile(hFile, pszFileText, dwFileSize, &dwRead, NULL))
 		return false;
 
-	// pszFileText[dwFileSize] = 0;
-
-
-	// when loading a file check to see if it is unicode
-	// we need to convert it to UTF-16 for use with native apis
-
-	int pi;
-	if(IsTextUnicode(pszFileText, dwFileSize, &pi)) {
+	int pi = IS_TEXT_UNICODE_UNICODE_MASK;
+	if(IsTextUnicode(pszFileText, dwFileSize, &pi)) 
 			SetWindowTextW(hEdit, (PWSTR)pszFileText);
-	} else {
+	else 
 			SetWindowTextA(hEdit, (PCSTR)pszFileText);
-	}
-
-
-
+	
 	GlobalFree(pszFileText);
 
 	CloseHandle(hFile);

+ 44 - 27
stimpy/stimpy/stimpy.cpp

@@ -1,25 +1,6 @@
-#include <windows.h>
-#include "resource.h"
+#include "stimpy.h"
 #include "fileio.h"
 
-// Necessary to get the styles
-
-#pragma comment(linker, \
-	"\"/manifestdependency:type='Win32' "\
-	"name='Microsoft.Windows.Common-Controls' "\
-	"version='6.0.0.0' "\
-	"processorArchitecture='*' "\
-	"publicKeyToken='6595b64144ccf1df' "\
-	"language='*'\"")
-
-#pragma comment(lib, "ComCtl32.lib")
-
-#define IDC_MAIN_EDIT                            101
-
-const char g_szClassName[] = "stimpyClass";
-
-OPENFILENAME ofn;
-
 void ShowAlertAlreadyRunning()
 {
 	MessageBoxW(NULL, L"This program is already running!", L"Warning!", MB_ICONWARNING);
@@ -30,12 +11,11 @@ void ShowAlertCurrentExe()
 	char szFileName[MAX_PATH];
 	HINSTANCE hInstance = GetModuleHandle(NULL);
 	GetModuleFileName(hInstance, (LPWSTR)szFileName, MAX_PATH);
-	MessageBoxW(NULL, (LPWSTR)szFileName, L"About This Program", MB_OK | MB_ICONINFORMATION);
+	MessageBoxW(NULL, (LPWSTR)szFileName, L"About Stimpy", MB_OK | MB_ICONINFORMATION);
 }
 
 void OpenFile(HWND hWnd)
 {
-
 	LPWSTR pwszBuf = (LPWSTR)GlobalAlloc(GPTR, (MAX_PATH) * sizeof(WCHAR));
 
 	ZeroMemory(&ofn, sizeof(ofn));
@@ -127,23 +107,58 @@ LRESULT CALLBACK WndProc(
 		break;
 	case WM_CREATE:
 		{
-			HGDIOBJ hfDefault;
-			HWND hEdit;
+			// Edit Box
 			DWORD dwStyle = WS_CHILD | WS_VISIBLE | WS_VSCROLL | WS_HSCROLL | ES_MULTILINE | ES_AUTOVSCROLL | ES_AUTOHSCROLL;
-			hEdit = CreateWindowEx(WS_EX_CLIENTEDGE, L"EDIT", L"", dwStyle, 0, 0, 0, 0, hWnd, (HMENU)IDC_MAIN_EDIT, GetModuleHandle(NULL), NULL);
+			HWND hEdit = CreateWindowEx(WS_EX_CLIENTEDGE, L"EDIT", L"", dwStyle, 0, 0, 0, 0, hWnd, (HMENU)IDC_MAIN_EDIT, GetModuleHandle(NULL), NULL);
 			if(hEdit == NULL)
 				MessageBox(hWnd, L"Could not create edit box.", L"Error", MB_OK | MB_ICONERROR);
-			hfDefault = GetStockObject(DEFAULT_GUI_FONT);
+
+			HGDIOBJ hfDefault = GetStockObject(DEFAULT_GUI_FONT);
 			SendMessage(hEdit, WM_SETFONT, (WPARAM)hfDefault, MAKELPARAM(FALSE, 0));
+
+			// Toolbar
+			TBBUTTON tbb[3];
+			TBADDBITMAP tbab;
+			tbab.hInst = HINST_COMMCTRL;
+			tbab.nID = IDB_STD_SMALL_COLOR;
+			
+			ZeroMemory(tbb, sizeof(tbb));
+			tbb[0].iBitmap = STD_FILENEW;
+			tbb[0].fsState = TBSTATE_ENABLED;
+			tbb[0].fsStyle = TBSTYLE_BUTTON;
+			tbb[0].idCommand = IDR_OPEN;
+			
+			tbb[1].iBitmap = STD_FILEOPEN;
+			tbb[1].fsState = TBSTATE_ENABLED;
+			tbb[1].fsStyle = TBSTYLE_BUTTON;
+			tbb[1].idCommand = IDR_SAVE;
+			
+			tbb[2].iBitmap = STD_FILESAVE;
+			tbb[2].fsState = TBSTATE_ENABLED;
+			tbb[2].fsStyle = TBSTYLE_BUTTON;
+			tbb[2].idCommand = IDR_SAVE;
+
+			HWND hToolbar = CreateToolbarEx(hWnd, WS_CHILD | WS_VISIBLE, IDC_MAIN_TOOL, 3, 0, 0, (LPCTBBUTTON)&tbb, 3, 16, 16, 0, 0, sizeof(TBBUTTON));
+
+			SendMessage(hToolbar, TB_ADDBITMAP, 1, (LPARAM)&tbab);
+
+			ShowWindow(hToolbar, SW_SHOW);
 		}
 		break;
 	case WM_SIZE:
 		{
+			RECT rcTool;
+			HWND hTool = GetDlgItem(hWnd, IDC_MAIN_TOOL);
+			SendMessage(hTool, TB_AUTOSIZE, 0, 0);
+			GetWindowRect(hTool, &rcTool);
+			int iToolHeight = rcTool.bottom - rcTool.top;
+
 			HWND hEdit;
 			RECT rcClient;
 			GetClientRect(hWnd, &rcClient);
+			int iEditHeight = rcClient.bottom - iToolHeight;
 			hEdit = GetDlgItem(hWnd, IDC_MAIN_EDIT);
-			SetWindowPos(hEdit, NULL, 0, 0, rcClient.right, rcClient.bottom, SWP_NOZORDER);
+			SetWindowPos(hEdit, NULL, 0, iToolHeight, rcClient.right, iEditHeight, SWP_NOZORDER);
 		}
 		break;
 	case WM_DESTROY:
@@ -187,6 +202,8 @@ int WINAPI WinMain(
 	SECURITY_ATTRIBUTES sa;
 	DWORD err;
 
+	InitCommonControls();
+
 	// Only one instance of this application at a time, please!
 	sa.nLength = sizeof(SECURITY_ATTRIBUTES);
 	sa.bInheritHandle = NULL;

+ 25 - 0
stimpy/stimpy/stimpy.h

@@ -0,0 +1,25 @@
+#include "resource.h"
+
+#define WIN32_LEAN_AND_MEAN
+#include <windows.h>
+#include <CommCtrl.h>
+#include <CommDlg.h>
+
+// Necessary to get the styles
+
+#pragma comment(linker, \
+	"\"/manifestdependency:type='Win32' "\
+	"name='Microsoft.Windows.Common-Controls' "\
+	"version='6.0.0.0' "\
+	"processorArchitecture='*' "\
+	"publicKeyToken='6595b64144ccf1df' "\
+	"language='*'\"")
+
+#pragma comment(lib, "ComCtl32.lib")
+
+#define IDC_MAIN_EDIT                            101
+#define IDC_MAIN_TOOL                            102
+
+const char g_szClassName[] = "stimpyClass";
+
+OPENFILENAME ofn;

+ 2 - 2
stimpy/stimpy/stimpy.rc

@@ -24,7 +24,7 @@ IDR_APP_MENU MENU
     }
     POPUP "&Settings"
     {
-        MENUITEM "&Pomodoros", IDR_SETTINGS
+        MENUITEM "&History", IDR_SETTINGS
     }
     POPUP "&About"
     {
@@ -44,7 +44,7 @@ CAPTION "Stimpy Settings"
 FONT 8, "Ms Shell Dlg"
 {
     LISTBOX         IDC_POMLIST, 5, 55, 253, 90, WS_TABSTOP | WS_VSCROLL | LBS_NOINTEGRALHEIGHT | LBS_SORT | LBS_NOTIFY, WS_EX_LEFT
-    LTEXT           "Pomodoros Counted", 0, 7, 44, 65, 9, SS_LEFT, WS_EX_LEFT
+    LTEXT           "Study Periods Counted", 0, 7, 44, 73, 9, SS_LEFT, WS_EX_LEFT
     EDITTEXT        IDC_TIMERLEN, 8, 23, 48, 14, ES_AUTOHSCROLL, WS_EX_LEFT
     LTEXT           "Timer Length", IDC_TIMERLBL, 9, 11, 42, 9, SS_LEFT, WS_EX_LEFT
     PUSHBUTTON      "&Cancel", IDCANCEL, 203, 151, 50, 14, 0, WS_EX_LEFT

+ 1 - 0
stimpy/stimpy/stimpy.vcxproj

@@ -85,6 +85,7 @@
   <ItemGroup>
     <ClInclude Include="fileio.h" />
     <ClInclude Include="resource.h" />
+    <ClInclude Include="stimpy.h" />
   </ItemGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
   <ImportGroup Label="ExtensionTargets">

+ 3 - 0
stimpy/stimpy/stimpy.vcxproj.filters

@@ -21,6 +21,9 @@
     <ClInclude Include="fileio.h">
       <Filter>Header Files</Filter>
     </ClInclude>
+    <ClInclude Include="stimpy.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
   </ItemGroup>
   <ItemGroup>
     <ResourceCompile Include="stimpy.rc">