ReactOS  0.4.15-dev-1377-ga59cecd
main.cpp File Reference
#include "precomp.h"
Include dependency graph for main.cpp:

Go to the source code of this file.

Functions

static BOOL FileExtFromFilter (LPTSTR pExt, LPCTSTR pTitle, OPENFILENAME *pOFN)
 
static UINT_PTR APIENTRY OFNHookProc (HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
 
int WINAPI _tWinMain (HINSTANCE hThisInstance, HINSTANCE hPrevInstance, LPTSTR lpszArgument, int nFunsterStil)
 

Variables

POINT start
 
POINT last
 
ToolsModel toolsModel
 
SelectionModel selectionModel
 
LOGFONT lfTextFont
 
HFONT hfontTextFont
 
HWND hwndEditCtl
 
LPTSTR textToolText = NULL
 
int textToolTextMaxLen = 0
 
PaletteModel paletteModel
 
RegistrySettings registrySettings
 
ImageModel imageModel
 
BOOL askBeforeEnlarging = FALSE
 
HWND hStatusBar
 
CHOOSECOLOR choosecolor
 
OPENFILENAME ofn
 
OPENFILENAME sfn
 
HICON hNontranspIcon
 
HICON hTranspIcon
 
HCURSOR hCurFill
 
HCURSOR hCurColor
 
HCURSOR hCurZoom
 
HCURSOR hCurPen
 
HCURSOR hCurAirbrush
 
HWND hToolBtn [16]
 
HINSTANCE hProgInstance
 
TCHAR filepathname [1000]
 
BOOL isAFile = FALSE
 
BOOL imageSaved = FALSE
 
int fileSize
 
int fileHPPM = 2834
 
int fileVPPM = 2834
 
SYSTEMTIME fileTime
 
BOOL showGrid = FALSE
 
BOOL showMiniature = FALSE
 
CMainWindow mainWindow
 
CFullscreenWindow fullscreenWindow
 
CMiniatureWindow miniature
 
CToolBox toolBoxContainer
 
CToolSettingsWindow toolSettingsWindow
 
CPaletteWindow paletteWindow
 
CScrollboxWindow scrollboxWindow
 
CScrollboxWindow scrlClientWindow
 
CSelectionWindow selectionWindow
 
CImgAreaWindow imageArea
 
CSizeboxWindow sizeboxLeftTop
 
CSizeboxWindow sizeboxCenterTop
 
CSizeboxWindow sizeboxRightTop
 
CSizeboxWindow sizeboxLeftCenter
 
CSizeboxWindow sizeboxRightCenter
 
CSizeboxWindow sizeboxLeftBottom
 
CSizeboxWindow sizeboxCenterBottom
 
CSizeboxWindow sizeboxRightBottom
 
CTextEditWindow textEditWindow
 

Function Documentation

◆ _tWinMain()

int WINAPI _tWinMain ( HINSTANCE  hThisInstance,
HINSTANCE  hPrevInstance,
LPTSTR  lpszArgument,
int  nFunsterStil 
)

Definition at line 146 of file main.cpp.

147 {
148  HWND hwnd; /* This is the handle for our window */
149  MSG messages; /* Here messages to the application are saved */
150 
151  HMENU menu;
152  HACCEL haccel;
153 
154  TCHAR sfnFilename[1000];
155  TCHAR sfnFiletitle[256];
156  TCHAR ofnFilename[1000];
157  TCHAR ofnFiletitle[256];
158  TCHAR miniaturetitle[100];
159  static COLORREF custColors[16] = {
160  0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff,
161  0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff
162  };
163 
164  /* init font for text tool */
165  ZeroMemory(&lfTextFont, sizeof(lfTextFont));
166  lfTextFont.lfHeight = 0;
170 
171  hProgInstance = hThisInstance;
172 
173  /* initialize common controls library */
175 
177  CPath pathFileName(filepathname);
178  pathFileName.StripPath();
179  CString strTitle;
180  strTitle.Format(IDS_WINDOWTITLE, (LPCTSTR)pathFileName);
181  LoadString(hThisInstance, IDS_MINIATURETITLE, miniaturetitle, SIZEOF(miniaturetitle));
182 
183  /* load settings from registry */
187 
188  /* create main window */
189  RECT mainWindowPos = {0, 0, 544, 375}; // FIXME: use equivalent of CW_USEDEFAULT for position
190  hwnd = mainWindow.Create(HWND_DESKTOP, mainWindowPos, strTitle, WS_OVERLAPPEDWINDOW);
191 
192  RECT fullscreenWindowPos = {0, 0, 100, 100};
193  fullscreenWindow.Create(HWND_DESKTOP, fullscreenWindowPos, NULL, WS_POPUPWINDOW | WS_MAXIMIZE);
194 
198  miniature.Create(hwnd, miniaturePos, miniaturetitle,
200  miniature.ShowWindow(showMiniature ? SW_SHOW : SW_HIDE);
201 
202  /* loading and setting the window menu from resource */
203  menu = LoadMenu(hThisInstance, MAKEINTRESOURCE(ID_MENU));
204  SetMenu(hwnd, menu);
205  haccel = LoadAccelerators(hThisInstance, MAKEINTRESOURCE(800));
206 
207  /* preloading the draw transparent/nontransparent icons for later use */
210  hTranspIcon =
212 
213  hCurFill = LoadIcon(hThisInstance, MAKEINTRESOURCE(IDC_FILL));
214  hCurColor = LoadIcon(hThisInstance, MAKEINTRESOURCE(IDC_COLOR));
215  hCurZoom = LoadIcon(hThisInstance, MAKEINTRESOURCE(IDC_ZOOM));
216  hCurPen = LoadIcon(hThisInstance, MAKEINTRESOURCE(IDC_PEN));
218 
219  CreateWindowEx(0, _T("STATIC"), NULL, WS_CHILD | WS_VISIBLE | SS_ETCHEDHORZ, 0, 0, 5000, 2, hwnd, NULL,
220  hThisInstance, NULL);
221 
222  RECT toolBoxContainerPos = {2, 2, 2 + 52, 2 + 350};
223  toolBoxContainer.Create(hwnd, toolBoxContainerPos, NULL, WS_CHILD | WS_VISIBLE);
224  /* creating the tool settings child window */
225  RECT toolSettingsWindowPos = {5, 208, 5 + 42, 208 + 140};
226  toolSettingsWindow.Create(toolBoxContainer.m_hWnd, toolSettingsWindowPos, NULL, WS_CHILD | WS_VISIBLE);
227 
228  /* creating the palette child window */
229  RECT paletteWindowPos = {56, 9, 56 + 255, 9 + 32};
230  paletteWindow.Create(hwnd, paletteWindowPos, NULL, WS_CHILD | WS_VISIBLE);
231 
232  /* creating the scroll box */
233  RECT scrollboxWindowPos = {56, 49, 56 + 472, 49 + 248};
234  scrollboxWindow.Create(hwnd, scrollboxWindowPos, NULL,
236 
237  /* creating the status bar */
238  hStatusBar =
240  NULL, hThisInstance, NULL);
242 
243  RECT scrlClientWindowPos = {0, 0, 0 + 500, 0 + 500};
244  scrlClientWindow.Create(scrollboxWindow.m_hWnd, scrlClientWindowPos, NULL, WS_CHILD | WS_VISIBLE);
245 
246  /* create selection window (initially hidden) */
247  RECT selectionWindowPos = {350, 0, 350 + 100, 0 + 100};
248  selectionWindow.Create(scrlClientWindow.m_hWnd, selectionWindowPos, NULL, WS_CHILD | BS_OWNERDRAW);
249 
250  /* creating the window inside the scroll box, on which the image in hDrawingDC's bitmap is drawn */
251  RECT imageAreaPos = {3, 3, 3 + imageModel.GetWidth(), 3 + imageModel.GetHeight()};
252  imageArea.Create(scrlClientWindow.m_hWnd, imageAreaPos, NULL, WS_CHILD | WS_VISIBLE);
253 
254  if (__argc >= 2)
255  {
257  }
258 
259  /* initializing the CHOOSECOLOR structure for use with ChooseColor */
263  choosecolor.rgbResult = 0x00ffffff;
264  choosecolor.lpCustColors = custColors;
265 
266  /* initializing the OPENFILENAME structure for use with GetOpenFileName and GetSaveFileName */
267  CopyMemory(ofnFilename, filepathname, sizeof(filepathname));
268  CString strImporters;
269  CSimpleArray<GUID> aguidFileTypesI;
270  CString strAllPictureFiles;
271  strAllPictureFiles.LoadString(hThisInstance, IDS_ALLPICTUREFILES);
272  CImage::GetImporterFilterString(strImporters, aguidFileTypesI, strAllPictureFiles, CImage::excludeDefaultLoad, _T('\0'));
273 // CAtlStringW strAllFiles;
274 // strAllFiles.LoadString(hThisInstance, IDS_ALLFILES);
275 // strImporters = strAllFiles + CAtlStringW(_T("|*.*|")).Replace('|', '\0') + strImporters;
276  ZeroMemory(&ofn, sizeof(OPENFILENAME));
277  ofn.lStructSize = sizeof(OPENFILENAME);
278  ofn.hwndOwner = hwnd;
279  ofn.hInstance = hThisInstance;
280  ofn.lpstrFilter = strImporters;
281  ofn.lpstrFile = ofnFilename;
282  ofn.nMaxFile = SIZEOF(ofnFilename);
283  ofn.lpstrFileTitle = ofnFiletitle;
284  ofn.nMaxFileTitle = SIZEOF(ofnFiletitle);
286  ofn.lpstrDefExt = L"bmp";
287 
288  CopyMemory(sfnFilename, filepathname, sizeof(filepathname));
289  CString strExporters;
290  CSimpleArray<GUID> aguidFileTypesE;
291  CImage::GetExporterFilterString(strExporters, aguidFileTypesE, NULL, CImage::excludeDefaultSave, _T('\0'));
292  ZeroMemory(&sfn, sizeof(OPENFILENAME));
293  sfn.lStructSize = sizeof(OPENFILENAME);
294  sfn.hwndOwner = hwnd;
295  sfn.hInstance = hThisInstance;
296  sfn.lpstrFilter = strExporters;
297  sfn.lpstrFile = sfnFilename;
298  sfn.nMaxFile = SIZEOF(sfnFilename);
299  sfn.lpstrFileTitle = sfnFiletitle;
300  sfn.nMaxFileTitle = SIZEOF(sfnFiletitle);
303  sfn.lpstrDefExt = L"bmp";
304 
305  /* creating the size boxes */
306  RECT sizeboxPos = {0, 0, 0 + 3, 0 + 3};
307  sizeboxLeftTop.Create(scrlClientWindow.m_hWnd, sizeboxPos, NULL, WS_CHILD | WS_VISIBLE);
308  sizeboxCenterTop.Create(scrlClientWindow.m_hWnd, sizeboxPos, NULL, WS_CHILD | WS_VISIBLE);
309  sizeboxRightTop.Create(scrlClientWindow.m_hWnd, sizeboxPos, NULL, WS_CHILD | WS_VISIBLE);
310  sizeboxLeftCenter.Create(scrlClientWindow.m_hWnd, sizeboxPos, NULL, WS_CHILD | WS_VISIBLE);
311  sizeboxRightCenter.Create(scrlClientWindow.m_hWnd, sizeboxPos, NULL, WS_CHILD | WS_VISIBLE);
312  sizeboxLeftBottom.Create(scrlClientWindow.m_hWnd, sizeboxPos, NULL, WS_CHILD | WS_VISIBLE);
313  sizeboxCenterBottom.Create(scrlClientWindow.m_hWnd, sizeboxPos, NULL, WS_CHILD | WS_VISIBLE);
314  sizeboxRightBottom.Create(scrlClientWindow.m_hWnd, sizeboxPos, NULL, WS_CHILD | WS_VISIBLE);
315  /* placing the size boxes around the image */
317 
318  /* by moving the window, the things in WM_SIZE are done */
320 
321  /* creating the text editor window for the text tool */
322  RECT textEditWindowPos = {300, 0, 300 + 300, 0 + 200};
323  textEditWindow.Create(hwnd, textEditWindowPos, NULL, WS_OVERLAPPEDWINDOW);
324 
325  /* Make the window visible on the screen */
326  ShowWindow (hwnd, nFunsterStil);
327 
328  /* inform the system, that the main window accepts dropped files */
330 
331  /* Run the message loop. It will run until GetMessage() returns 0 */
332  while (GetMessage(&messages, NULL, 0, 0))
333  {
335 
336  /* Translate virtual-key messages into character messages */
338  /* Send message to WindowProcedure */
340  }
341 
342  /* write back settings to registry */
347 
348  /* The program return-value is 0 - The value that PostQuitMessage() gave */
349  return messages.wParam;
350 }
#define WS_GROUP
Definition: pedump.c:633
#define OFN_EXPLORER
Definition: commdlg.h:104
#define WS_POPUPWINDOW
Definition: pedump.c:638
#define IDS_ALLPICTUREFILES
Definition: definitions.h:230
DWORD ThumbXPos
Definition: registry.h:25
#define WS_THICKFRAME
Definition: pedump.c:630
#define TranslateAccelerator
Definition: winuser.h:5835
const DOCKBAR PVOID HWND HWND * hwnd
Definition: tooldock.h:22
#define MAKEINTRESOURCE
Definition: winuser.h:591
#define DispatchMessage
Definition: winuser.h:5740
#define IDC_ZOOM
Definition: resource.h:16
#define BS_OWNERDRAW
Definition: pedump.c:661
BOOL WINAPI TranslateMessage(_In_ const MSG *)
static HICON
Definition: imagelist.c:84
const CHAR * LPCTSTR
Definition: xmlstorage.h:193
CToolSettingsWindow toolSettingsWindow
Definition: main.cpp:67
#define IMAGE_ICON
Definition: winuser.h:212
#define IDS_MINIATURETITLE
Definition: definitions.h:210
DWORD ThumbHeight
Definition: registry.h:23
HCURSOR hCurFill
Definition: main.cpp:42
LPSTR lpstrFileTitle
Definition: commdlg.h:338
HWND hwndOwner
Definition: commdlg.h:330
#define TRUE
Definition: types.h:120
#define SW_HIDE
Definition: winuser.h:762
CHOOSECOLORA CHOOSECOLOR
Definition: commdlg.h:654
ImageModel imageModel
Definition: main.cpp:32
#define WS_EX_PALETTEWINDOW
Definition: winuser.h:399
HWND Create(HWND hWndParent, _U_RECT rect=NULL, LPCTSTR szWindowName=NULL, DWORD dwStyle=0, DWORD dwExStyle=0, _U_MENUorID MenuOrID=0U, LPVOID lpCreateParam=NULL)
Definition: atlwin.h:1637
OPENFILENAME ofn
Definition: main.cpp:37
TW_UINT32 TW_UINT16 TW_UINT16 MSG
Definition: twain.h:1827
void WINAPI DragAcceptFiles(HWND hWnd, BOOL b)
Definition: shellole.c:527
CSizeboxWindow sizeboxRightCenter
Definition: main.cpp:77
HCURSOR hCurColor
Definition: main.cpp:43
#define ZeroMemory
Definition: winbase.h:1648
LPCSTR lpstrDefExt
Definition: commdlg.h:345
void __cdecl Format(UINT nFormatID,...)
Definition: cstringt.h:716
BYTE lfCharSet
Definition: dimm.idl:50
HCURSOR hCurPen
Definition: main.cpp:45
#define __targv
Definition: tchar.h:504
#define WS_CHILD
Definition: pedump.c:617
BOOL WINAPI ShowWindow(_In_ HWND, _In_ int)
#define DEFAULT_CHARSET
Definition: wingdi.h:383
#define STATUSCLASSNAME
Definition: commctrl.h:1935
COLORREF rgbResult
Definition: commdlg.h:242
DWORD nMaxFile
Definition: commdlg.h:337
static UINT_PTR APIENTRY OFNHookProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
Definition: main.cpp:111
CSizeboxWindow sizeboxCenterBottom
Definition: main.cpp:79
DWORD BMPHeight
Definition: registry.h:17
#define IDC_PEN
Definition: definitions.h:40
void Crop(int nWidth, int nHeight, int nOffsetX=0, int nOffsetY=0)
Definition: history.cpp:124
CToolBox toolBoxContainer
Definition: main.cpp:66
CPaletteWindow paletteWindow
Definition: main.cpp:68
CHOOSECOLOR choosecolor
Definition: main.cpp:36
CSizeboxWindow sizeboxLeftBottom
Definition: main.cpp:78
#define LoadAccelerators
Definition: winuser.h:5785
CFullscreenWindow fullscreenWindow
Definition: main.cpp:64
#define SIZEOF(_ar)
Definition: calc.h:97
LPOFNHOOKPROC lpfnHook
Definition: commdlg.h:347
long LONG
Definition: pedump.c:60
LONG lfHeight
Definition: dimm.idl:42
#define OFN_ENABLEHOOK
Definition: commdlg.h:99
#define CreateWindowEx
Definition: winuser.h:5730
#define IDC_COLOR
Definition: definitions.h:38
LONG lfWeight
Definition: dimm.idl:46
#define ID_MENU
Definition: definitions.h:48
#define IDI_NONTRANSPARENT
Definition: definitions.h:35
HFONT hfontTextFont
Definition: main.cpp:23
DWORD ShowThumbnail
Definition: registry.h:21
CSizeboxWindow sizeboxRightTop
Definition: main.cpp:75
HINSTANCE hInstance
Definition: commdlg.h:331
OPENFILENAMEA OPENFILENAME
Definition: commdlg.h:657
#define SW_SHOW
Definition: winuser.h:769
HWND hStatusBar
Definition: main.cpp:35
HICON hTranspIcon
Definition: main.cpp:40
#define IDC_AIRBRUSH
Definition: definitions.h:41
BOOL SetWindowPlacement(const WINDOWPLACEMENT *lpwndpl)
Definition: atlwin.h:1214
WINDOWPLACEMENT WindowPlacement
Definition: registry.h:28
#define WS_CAPTION
Definition: pedump.c:624
char TCHAR
Definition: xmlstorage.h:189
CMiniatureWindow miniature
Definition: main.cpp:65
CMainWindow mainWindow
Definition: main.cpp:63
HCURSOR hCurAirbrush
Definition: main.cpp:46
#define SS_ETCHEDHORZ
Definition: winuser.h:343
#define _T(x)
Definition: vfdio.h:22
DWORD BMPWidth
Definition: registry.h:18
RegistrySettings registrySettings
Definition: main.cpp:30
#define WS_OVERLAPPED
Definition: pedump.c:615
#define SBARS_SIZEGRIP
Definition: commctrl.h:1919
#define WM_SIZE
Definition: winuser.h:1593
HINSTANCE hProgInstance
Definition: main.cpp:50
BOOL WINAPI SetMenu(_In_ HWND, _In_opt_ HMENU)
DWORD COLORREF
Definition: windef.h:300
TCHAR filepathname[1000]
Definition: main.cpp:52
DWORD ThumbWidth
Definition: registry.h:24
DWORD lStructSize
Definition: commdlg.h:329
#define CopyMemory
Definition: winbase.h:1646
CSelectionWindow selectionWindow
Definition: main.cpp:71
#define IDC_FILL
Definition: definitions.h:37
BOOL showMiniature
Definition: main.cpp:61
CSizeboxWindow sizeboxRightBottom
Definition: main.cpp:80
#define WS_HSCROLL
Definition: pedump.c:628
int GetWidth()
Definition: history.cpp:194
int GetHeight()
Definition: history.cpp:199
static const WCHAR L[]
Definition: oid.c:1250
HWND Create()
Definition: gui.cpp:732
#define IDI_TRANSPARENT
Definition: definitions.h:34
CSizeboxWindow sizeboxCenterTop
Definition: main.cpp:74
#define OFN_HIDEREADONLY
Definition: commdlg.h:107
HWND m_hWnd
Definition: atlwin.h:268
DWORD ThumbYPos
Definition: registry.h:26
DWORD lStructSize
Definition: commdlg.h:239
CTextEditWindow textEditWindow
Definition: main.cpp:81
#define WS_EX_CLIENTEDGE
Definition: winuser.h:384
#define LoadMenu
Definition: winuser.h:5792
LPSTR lpstrFile
Definition: commdlg.h:336
#define OFN_OVERWRITEPROMPT
Definition: commdlg.h:116
HICON hNontranspIcon
Definition: main.cpp:39
HBITMAP DoLoadImageFile(HWND hwnd, LPCTSTR name, BOOL fIsMainFile)
Definition: dib.cpp:159
HCURSOR hCurZoom
Definition: main.cpp:44
LPCSTR lpstrFilter
Definition: commdlg.h:332
#define HWND_DESKTOP
Definition: winuser.h:1195
OPENFILENAME sfn
Definition: main.cpp:38
HWND hwndOwner
Definition: commdlg.h:240
#define CreateFontIndirect
Definition: wingdi.h:4443
#define NULL
Definition: types.h:112
#define WS_VSCROLL
Definition: pedump.c:627
#define GetMessage
Definition: winuser.h:5765
LOGFONT lfTextFont
Definition: main.cpp:22
#define FW_NORMAL
Definition: wingdi.h:372
_CRTIMP int __argc
Definition: getargs.c:21
#define SendMessage
Definition: winuser.h:5818
CImgAreaWindow imageArea
Definition: main.cpp:72
#define WS_OVERLAPPEDWINDOW
Definition: pedump.c:637
LRESULT SendMessage(UINT message, WPARAM wParam=0, LPARAM lParam=0)
Definition: atlwin.h:1048
BOOL LoadString(_In_ UINT nID)
Definition: cstringt.h:554
CSizeboxWindow sizeboxLeftTop
Definition: main.cpp:73
#define LoadImage
Definition: winuser.h:5790
VOID WINAPI InitCommonControls(void)
Definition: commctrl.c:863
#define LoadIcon
Definition: winuser.h:5788
#define SB_SETMINHEIGHT
Definition: commctrl.h:1953
CScrollboxWindow scrlClientWindow
Definition: main.cpp:70
#define LR_DEFAULTCOLOR
Definition: winuser.h:1077
#define WS_VISIBLE
Definition: pedump.c:620
#define WS_SYSMENU
Definition: pedump.c:629
CSizeboxWindow sizeboxLeftCenter
Definition: main.cpp:76
static const CLSID *static CLSID *static const GUID VARIANT VARIANT *static IServiceProvider DWORD *static HMENU
Definition: ordinal.c:60
#define IDS_WINDOWTITLE
Definition: definitions.h:204
COLORREF * lpCustColors
Definition: commdlg.h:243
#define LoadString
Definition: winuser.h:5794
DWORD nMaxFileTitle
Definition: commdlg.h:339
CScrollboxWindow scrollboxWindow
Definition: main.cpp:69
#define IDS_DEFAULTFILENAME
Definition: definitions.h:209
#define WS_MAXIMIZE
Definition: pedump.c:623
DWORD Flags
Definition: commdlg.h:342

◆ FileExtFromFilter()

static BOOL FileExtFromFilter ( LPTSTR  pExt,
LPCTSTR  pTitle,
OPENFILENAME pOFN 
)
static

Definition at line 85 of file main.cpp.

86 {
87  LPTSTR pchExt = pExt;
88  *pchExt = 0;
89 
90  DWORD nIndex = 1;
91  for (LPCTSTR pch = pOFN->lpstrFilter; *pch; ++nIndex)
92  {
93  pch += lstrlen(pch) + 1;
94  if (pOFN->nFilterIndex == nIndex)
95  {
96  for (++pch; *pch && *pch != _T(';'); ++pch)
97  {
98  *pchExt++ = *pch;
99  }
100  *pchExt = 0;
101  CharLower(pExt);
102  return TRUE;
103  }
104  pch += lstrlen(pch) + 1;
105  }
106  return FALSE;
107 }
const CHAR * LPCTSTR
Definition: xmlstorage.h:193
#define TRUE
Definition: types.h:120
CHAR * LPTSTR
Definition: xmlstorage.h:192
#define pch(ap)
Definition: match.c:418
#define FALSE
Definition: types.h:117
#define _T(x)
Definition: vfdio.h:22
unsigned long DWORD
Definition: ntddk_ex.h:95
#define lstrlen
Definition: winbase.h:3716
LPCSTR lpstrFilter
Definition: commdlg.h:332
#define CharLower
Definition: winuser.h:5712
DWORD nFilterIndex
Definition: commdlg.h:335

Referenced by OFNHookProc().

◆ OFNHookProc()

static UINT_PTR APIENTRY OFNHookProc ( HWND  hwnd,
UINT  uMsg,
WPARAM  wParam,
LPARAM  lParam 
)
static

Definition at line 111 of file main.cpp.

112 {
113  HWND hParent;
114  OFNOTIFY *pon;
115  switch (uMsg)
116  {
117  case WM_NOTIFY:
118  pon = (OFNOTIFY *)lParam;
119  if (pon->hdr.code == CDN_TYPECHANGE)
120  {
124  LPTSTR pchTitle = _tcsrchr(Path, _T('\\'));
125  if (pchTitle == NULL)
126  pchTitle = _tcsrchr(Path, _T('/'));
127 
128  LPTSTR pch = _tcsrchr((pchTitle ? pchTitle : Path), _T('.'));
129  if (pch && pchTitle)
130  {
131  pchTitle++;
132  *pch = 0;
133  FileExtFromFilter(pch, pchTitle, pon->lpOFN);
134  SendMessage(hParent, CDM_SETCONTROLTEXT, 0x047c, (LPARAM)pchTitle);
135  lstrcpyn(pon->lpOFN->lpstrFile, Path, pon->lpOFN->nMaxFile);
136  }
137  }
138  break;
139  }
140  return 0;
141 }
const DOCKBAR PVOID HWND HWND * hwnd
Definition: tooldock.h:22
CHAR * LPTSTR
Definition: xmlstorage.h:192
#define pch(ap)
Definition: match.c:418
DWORD nMaxFile
Definition: commdlg.h:337
UINT code
Definition: winuser.h:3134
#define SIZEOF(_ar)
Definition: calc.h:97
LONG_PTR LPARAM
Definition: windef.h:208
static BOOL FileExtFromFilter(LPTSTR pExt, LPCTSTR pTitle, OPENFILENAME *pOFN)
Definition: main.cpp:85
LPOPENFILENAMEA lpOFN
Definition: commdlg.h:407
char TCHAR
Definition: xmlstorage.h:189
#define _T(x)
Definition: vfdio.h:22
NMHDR hdr
Definition: commdlg.h:406
#define CDM_GETFILEPATH
Definition: commdlg.h:44
#define MAX_PATH
Definition: compat.h:34
const DOCKBAR PVOID HWND hParent
Definition: tooldock.h:22
#define CDN_TYPECHANGE
Definition: commdlg.h:39
HWND WINAPI GetParent(_In_ HWND)
PRTL_UNICODE_STRING_BUFFER Path
#define CDM_SETCONTROLTEXT
Definition: commdlg.h:47
LPSTR lpstrFile
Definition: commdlg.h:336
#define NULL
Definition: types.h:112
#define SendMessage
Definition: winuser.h:5818
_TCHAR * _tcsrchr(const _TCHAR *s, _XINT c)
Definition: tcsrchr.h:4
LPARAM lParam
Definition: combotst.c:139
#define WM_NOTIFY
Definition: richedit.h:61
#define lstrcpyn
Definition: winbase.h:3715

Referenced by _tWinMain().

Variable Documentation

◆ askBeforeEnlarging

BOOL askBeforeEnlarging = FALSE

Definition at line 33 of file main.cpp.

Referenced by CMainWindow::InsertSelectionFromHBITMAP().

◆ choosecolor

◆ fileHPPM

◆ filepathname

◆ fileSize

◆ fileTime

◆ fileVPPM

◆ fullscreenWindow

CFullscreenWindow fullscreenWindow

Definition at line 64 of file main.cpp.

Referenced by _tWinMain(), CMainWindow::OnCommand(), and CMainWindow::OnKeyDown().

◆ hCurAirbrush

HCURSOR hCurAirbrush

Definition at line 46 of file main.cpp.

Referenced by _tWinMain(), and CImgAreaWindow::OnSetCursor().

◆ hCurColor

HCURSOR hCurColor

Definition at line 43 of file main.cpp.

Referenced by _tWinMain(), and CImgAreaWindow::OnSetCursor().

◆ hCurFill

HCURSOR hCurFill

Definition at line 42 of file main.cpp.

Referenced by _tWinMain(), and CImgAreaWindow::OnSetCursor().

◆ hCurPen

HCURSOR hCurPen

Definition at line 45 of file main.cpp.

Referenced by _tWinMain(), and CImgAreaWindow::OnSetCursor().

◆ hCurZoom

HCURSOR hCurZoom

Definition at line 44 of file main.cpp.

Referenced by _tWinMain(), and CImgAreaWindow::OnSetCursor().

◆ hfontTextFont

HFONT hfontTextFont

Definition at line 23 of file main.cpp.

Referenced by _tWinMain(), and SelectionModel::DrawTextToolText().

◆ hNontranspIcon

HICON hNontranspIcon

Definition at line 39 of file main.cpp.

Referenced by _tWinMain(), and CToolSettingsWindow::OnPaint().

◆ hProgInstance

◆ hStatusBar

HWND hStatusBar

Definition at line 35 of file main.cpp.

Referenced by _tWinMain().

◆ hToolBtn

HWND hToolBtn[16]

Definition at line 48 of file main.cpp.

◆ hTranspIcon

HICON hTranspIcon

Definition at line 40 of file main.cpp.

Referenced by _tWinMain(), and CToolSettingsWindow::OnPaint().

◆ hwndEditCtl

HWND hwndEditCtl

Definition at line 24 of file main.cpp.

◆ imageArea

◆ imageModel

◆ imageSaved

◆ isAFile

◆ last

POINT last

Definition at line 16 of file main.cpp.

◆ lfTextFont

LOGFONT lfTextFont

Definition at line 22 of file main.cpp.

Referenced by _tWinMain().

◆ mainWindow

◆ miniature

◆ ofn

Definition at line 37 of file main.cpp.

Referenced by _tWinMain().

◆ paletteModel

◆ paletteWindow

◆ registrySettings

◆ scrlClientWindow

◆ scrollboxWindow

◆ selectionModel

◆ selectionWindow

◆ sfn

Definition at line 38 of file main.cpp.

Referenced by _tWinMain().

◆ showGrid

BOOL showGrid = FALSE

◆ showMiniature

BOOL showMiniature = FALSE

◆ sizeboxCenterBottom

◆ sizeboxCenterTop

◆ sizeboxLeftBottom

◆ sizeboxLeftCenter

◆ sizeboxLeftTop

◆ sizeboxRightBottom

◆ sizeboxRightCenter

◆ sizeboxRightTop

◆ start

Definition at line 15 of file main.cpp.

◆ textEditWindow

◆ textToolText

LPTSTR textToolText = NULL

Definition at line 25 of file main.cpp.

Referenced by SelectionModel::DrawTextToolText(), and CTextEditWindow::OnCommand().

◆ textToolTextMaxLen

int textToolTextMaxLen = 0

Definition at line 26 of file main.cpp.

Referenced by CTextEditWindow::OnCommand().

◆ toolBoxContainer

◆ toolSettingsWindow

◆ toolsModel