📄 commandbands.cpp
字号:
#include "GSFinder.h"
#include "CommandBands.h"
#include "ListView.h"
#if __PALMSIZE_PC
TCHAR g_szTipsStrings[][32] = {
_T(""), IDS_UPFOLDER, IDS_REFRESH, IDS_FOLDERVIEW, IDS_CTRLKEY, IDS_SHOWTOOLBAR,
IDS_BACK, IDS_FRONT,
IDS_DELETE, IDS_PROPERTY, IDS_CUT, IDS_COPY, IDS_PASTE, IDS_LISTSTYLE,
IDS_GOTOFOLDER
};
#else
TCHAR g_szTipsStrings[][32] = {
IDS_BACK, IDS_FRONT, IDS_UPFOLDER, IDS_NEWFOLDER, IDS_DELETE, IDS_PROPERTY,
IDS_REFRESH, IDS_FOLDERVIEW, IDS_CUT, IDS_COPY, IDS_PASTE, IDS_LISTSTYLE,
IDS_GOTOFOLDER
};
#endif
LPTSTR g_lpszTips[17];
WNDPROC Org_CmbEditProc = NULL;
///////////////////////////////////////////////////////////////
LRESULT CALLBACK CmbEditProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
switch (message)
{
//ADD START TODA
case WM_SETFOCUS:
g_MainWnd.m_CmdBands.SetEnableItemSelected3();
g_MainWnd.m_CmdBands.SetEnableEditPasteBef();
break;
case WM_KILLFOCUS:
g_MainWnd.m_CmdBands.SetEnableEditPasteAft();
break;
//ADD END
//MOD START TODA (IME偺Enter僉乕偵偰斀墳偡傞堊 WM_KEYUP->WM_KEYDOWN)
// case WM_KEYUP:
case WM_KEYDOWN:
//MOD END
{
if (wParam == VK_RETURN) {
g_MainWnd.m_ListView.OnViewUpdate();
return 0;
}
break;
}
//DEL START TODA (僉乕偑斀墳偟側偔側傞堊)
// case WM_KEYDOWN:
// return 0;
//DEL END
default:
break;
}
return CallWindowProc((WNDPROC)Org_CmbEditProc, hWnd, message, wParam, lParam);
}
///////////////////////////////////////////////////////////////
CCmdBands::CCmdBands()
{
m_Settings.BandInfo[0].dwStyle = RBBS_CHILDEDGE;
m_Settings.BandInfo[0].dwWidth = 380; //MOD TODA (230 -> 380)
m_Settings.BandInfo[0].dwID = BANDID_MENUBAR;
m_Settings.BandInfo[1].dwStyle = RBBS_CHILDEDGE;
m_Settings.BandInfo[1].dwWidth = 140;
m_Settings.BandInfo[1].dwID = BANDID_TOOLBAR;
m_Settings.BandInfo[2].dwStyle = RBBS_CHILDEDGE | RBBS_BREAK;
m_Settings.BandInfo[2].dwWidth = 140;
m_Settings.BandInfo[2].dwID = BANDID_ADDRESSBAR;
m_Settings.bShowToolBar = TRUE;
m_Settings.bShowAddressBar = TRUE;
m_rcTool.top = -999;
m_rcAddr.top = -999;
}
///////////////////////////////////////////////////////////////
CCmdBands::~CCmdBands()
{
}
///////////////////////////////////////////////////////////////
//僐儅儞僪僶儞僪偺嶌惉
void CCmdBands::Init(HWND hwndParent)
{
REBARBANDINFO rbi;
HWND hCB;
int i;
//僀儊乕僕儕僗僩嶌惉
m_hImageList = ImageList_Create(11, 16, ILC_COLOR, 0, 2);
HBITMAP hBmp = LoadBitmap(g_hInst, (LPCTSTR)IDB_MENU);
ImageList_Add(m_hImageList, hBmp, NULL);
DeleteObject(hBmp);
hBmp = LoadBitmap(g_hInst, (LPCTSTR)IDB_TOOLBAR);
ImageList_Add(m_hImageList, hBmp, NULL);
DeleteObject(hBmp);
GetSettings();
//儕僶乕嶌惉
m_hWnd = CommandBands_Create(g_hInst, hwndParent, 0,
RBS_AUTOSIZE | RBS_VARHEIGHT | RBS_SMARTLABELS | RBS_BANDBORDERS, m_hImageList);
for (i = 0; i < 3; i++)
{
rbi.cbSize = sizeof (REBARBANDINFO);
rbi.fMask = RBBIM_STYLE | RBBIM_ID | RBBIM_SIZE | RBBIM_IMAGE | RBBIM_CHILDSIZE;
rbi.fStyle = (m_Settings.BandInfo[i].dwID == BANDID_MENUBAR) ?
m_Settings.BandInfo[i].dwStyle | RBBS_NOGRIPPER : m_Settings.BandInfo[i].dwStyle;
rbi.lpText = NULL;
rbi.wID = m_Settings.BandInfo[i].dwID;
rbi.cx = m_Settings.BandInfo[i].dwWidth;
rbi.cxMinChild = MIN_BANDWIDTH;
rbi.cyMinChild = MIN_BANDHEIGHT;
rbi.iImage = (m_Settings.BandInfo[i].dwID == BANDID_MENUBAR) ? 0 : 1;
if (m_Settings.BandInfo[i].dwID == BANDID_ADDRESSBAR)
{
rbi.fMask |= RBBIM_TEXT;
rbi.lpText = IDS_ADDRESSBAR;
}
CommandBands_AddBands(m_hWnd, g_hInst, 1, &rbi);
hCB = CommandBands_GetCommandBar(m_hWnd, i);
switch (m_Settings.BandInfo[i].dwID)
{
case 0 : CreateMenuBar(hCB); break;
case 1 : CreateToolBar(hCB); break;
case 2 : CreateAddressBar(hCB); break;
}
}
//MOD START TODA (僐儅儞僪僶儞僪偺暵偠傞儃僞儞捛壛売強)
#ifndef __PALMSIZE_PC
if(_WIN32_WCE < 400 || !g_MainWnd.m_bOverLapped)
CommandBands_AddAdornments(m_hWnd, 0, 0, NULL);
#endif
//MOD END
/*for (i=0; i<4; i++)
{
REBARBANDINFO rbi;
rbi.cbSize = sizeof (REBARBANDINFO);
rbi.fMask = RBBIM_ID | RBBIM_CHILD;
SendMessage(m_hWnd, RB_GETBANDINFO, i, (LPARAM)&rbi);
if (rbi.wID == 0xFFFFFFFF)
{
SetWindowLong(rbi.hwndChild, GWL_STYLE, GetWindowLong(rbi.hwndChild, GWL_STYLE)|TBSTYLE_FLAT);
break;
}
}*/
//ADD START TODA
if(m_rcAddr.top != -999)
MoveBand(BANDID_ADDRESSBAR, m_rcAddr);
if(m_rcTool.top != -999)
MoveBand(BANDID_TOOLBAR, m_rcTool);
//ADD END
ShowBand(BANDID_TOOLBAR, m_Settings.bShowToolBar);
ShowBand(BANDID_ADDRESSBAR, m_Settings.bShowAddressBar);
SetCheckViewToolBar();
SetCheckViewAddressBar();
GetRecent();
ShowWindow(m_hWnd, SW_SHOW);
}
///////////////////////////////////////////////////////////////
void CCmdBands::Destroy()
{
SaveSettings();
SaveRecent();
ImageList_RemoveAll(m_hImageList);
ImageList_Destroy(m_hImageList);
DestroyWindow(m_hWnd);
}
///////////////////////////////////////////////////////////////
void CCmdBands::SetFolderName(LPCTSTR lpszPath)
{
TCHAR szPath[MAX_PATH];
wcscpy(szPath, GetRootName());
if (wcslen(lpszPath))
wcscpy(szPath, lpszPath);
int nIndex = SendMessage(m_hComboBox, CB_FINDSTRINGEXACT, 0, (LPARAM)szPath);
if (nIndex != CB_ERR)
SendMessage(m_hComboBox, CB_DELETESTRING, nIndex, 0);
SendMessage(m_hComboBox, CB_INSERTSTRING, 0, (LPARAM)szPath);
SendMessage(m_hComboBox, CB_SETCURSEL, 0, 0);
}
///////////////////////////////////////////////////////////////
void CCmdBands::SetCheckListStyle(DWORD dwStyle, DWORD dwExStyle)
{
HMENU hMenu = CommandBar_GetMenu(m_hMenubar, 0);
CheckMenuItem(hMenu, ID_VIEW_LARGEICON, (dwStyle == LVS_ICON)?MF_BYCOMMAND|MF_CHECKED:MF_BYCOMMAND|MF_UNCHECKED);
CheckMenuItem(hMenu, ID_VIEW_SMALLICON, (dwStyle == LVS_SMALLICON)?MF_BYCOMMAND|MF_CHECKED:MF_BYCOMMAND|MF_UNCHECKED);
CheckMenuItem(hMenu, ID_VIEW_LIST, (dwStyle == LVS_LIST)?MF_BYCOMMAND|MF_CHECKED:MF_BYCOMMAND|MF_UNCHECKED);
//MOD START TODA
CheckMenuItem(hMenu, ID_VIEW_REPORT, (dwStyle == LVS_REPORT && !dwExStyle)?MF_BYCOMMAND|MF_CHECKED:MF_BYCOMMAND|MF_UNCHECKED);
CheckMenuItem(hMenu, ID_VIEW_REPORTLINE, (dwStyle == LVS_REPORT && dwExStyle)?MF_BYCOMMAND|MF_CHECKED:MF_BYCOMMAND|MF_UNCHECKED);
//MOD END
}
///////////////////////////////////////////////////////////////
void CCmdBands::SetCheckSort(int nSort, BOOL bRaise)
{
HMENU hMenu = CommandBar_GetMenu(m_hMenubar, 0);
CheckMenuItem(hMenu, ID_VIEW_SORT_NAME, (nSort == LIST_SORT_NAME)?MF_BYCOMMAND|MF_CHECKED:MF_BYCOMMAND|MF_UNCHECKED);
CheckMenuItem(hMenu, ID_VIEW_SORT_EXT, (nSort == LIST_SORT_EXT)?MF_BYCOMMAND|MF_CHECKED:MF_BYCOMMAND|MF_UNCHECKED);
CheckMenuItem(hMenu, ID_VIEW_SORT_SIZE, (nSort == LIST_SORT_SIZE)?MF_BYCOMMAND|MF_CHECKED:MF_BYCOMMAND|MF_UNCHECKED);
CheckMenuItem(hMenu, ID_VIEW_SORT_TIME, (nSort == LIST_SORT_TIME)?MF_BYCOMMAND|MF_CHECKED:MF_BYCOMMAND|MF_UNCHECKED);
CheckMenuItem(hMenu, ID_VIEW_SORT_NOT_RAISE, bRaise?MF_BYCOMMAND|MF_UNCHECKED:MF_BYCOMMAND|MF_CHECKED);
}
//ADD START TODA
///////////////////////////////////////////////////////////////
void CCmdBands::SetCheckKeyOn(BOOL bCtrlOn, BOOL bShiftOn)
{
HMENU hMenu = CommandBar_GetMenu(m_hMenubar, 0);
//僐儞僩儘乕儖
CheckMenuItem(hMenu, ID_EDIT_CONTROL_ON, bCtrlOn?MF_BYCOMMAND|MF_CHECKED:MF_BYCOMMAND|MF_UNCHECKED);
//僔僼僩
CheckMenuItem(hMenu, ID_EDIT_SHIFT_ON, bShiftOn?MF_BYCOMMAND|MF_CHECKED:MF_BYCOMMAND|MF_UNCHECKED);
}
///////////////////////////////////////////////////////////////
void CCmdBands::SetCheckViewSide(BOOL bViewSide)
{
HMENU hMenu = CommandBar_GetMenu(m_hMenubar, 0);
CheckMenuItem(hMenu, ID_VIEW_SIDE, bViewSide?MF_BYCOMMAND|MF_CHECKED:MF_BYCOMMAND|MF_UNCHECKED);
}
//ADD END
///////////////////////////////////////////////////////////////
void CCmdBands::SetCheckViewStatusWnd(BOOL bShowStatusWnd)
{
HMENU hMenu = CommandBar_GetMenu(m_hMenubar, 0);
CheckMenuItem(hMenu, ID_VIEW_STATUSBAR, bShowStatusWnd?MF_BYCOMMAND|MF_CHECKED:MF_BYCOMMAND|MF_UNCHECKED);
}
///////////////////////////////////////////////////////////////
void CCmdBands::SetCheckViewFolder(BOOL bShowFolder)
{
HMENU hMenu = CommandBar_GetMenu(m_hMenubar, 0);
CheckMenuItem(hMenu, ID_VIEW_FOLDER, bShowFolder?MF_BYCOMMAND|MF_CHECKED:MF_BYCOMMAND|MF_UNCHECKED);
SendMessage(m_hMenubar, TB_SETSTATE, ID_VIEW_FOLDER, bShowFolder ? TBSTATE_CHECKED|TBSTATE_ENABLED : TBSTATE_ENABLED);
SendMessage(m_hToolbar, TB_SETSTATE, ID_VIEW_FOLDER, bShowFolder ? TBSTATE_CHECKED|TBSTATE_ENABLED : TBSTATE_ENABLED);
}
//ADD START TODA
///////////////////////////////////////////////////////////////
void CCmdBands::SetCheckDragDrop(BOOL bDragDrop)
{
HMENU hMenu = CommandBar_GetMenu(m_hMenubar, 0);
CheckMenuItem(hMenu, ID_EDIT_DRAGDROP, bDragDrop?MF_BYCOMMAND|MF_CHECKED:MF_BYCOMMAND|MF_UNCHECKED);
}
//ADD END
///////////////////////////////////////////////////////////////
void CCmdBands::SetCheckViewToolBar()
{
HMENU hMenu = CommandBar_GetMenu(m_hMenubar, 0);
CheckMenuItem(hMenu, ID_VIEW_TOOLBAR, m_Settings.bShowToolBar?MF_BYCOMMAND|MF_CHECKED:MF_BYCOMMAND|MF_UNCHECKED);
}
///////////////////////////////////////////////////////////////
void CCmdBands::SetCheckViewAddressBar()
{
HMENU hMenu = CommandBar_GetMenu(m_hMenubar, 0);
CheckMenuItem(hMenu, ID_VIEW_ADDRESSBAR, m_Settings.bShowAddressBar?MF_BYCOMMAND|MF_CHECKED:MF_BYCOMMAND|MF_UNCHECKED);
}
///////////////////////////////////////////////////////////////
void CCmdBands::SetEnableUpperFolder(BOOL bEnable)
{
HMENU hMenu = CommandBar_GetMenu(m_hMenubar, 0);
EnableMenuItem(hMenu, ID_VIEW_UPFOLDER, bEnable?MF_BYCOMMAND|MF_ENABLED:MF_BYCOMMAND|MF_GRAYED);
SendMessage(m_hToolbar, TB_SETSTATE, ID_VIEW_UPFOLDER, bEnable?TBSTATE_ENABLED:TBSTATE_INDETERMINATE);
}
//ADD START TODA (僣乕儖儃僞儞捛壛)
///////////////////////////////////////////////////////////////
void CCmdBands::SetEnableFront(BOOL bEnable)
{
HMENU hMenu = CommandBar_GetMenu(m_hMenubar, 0);
EnableMenuItem(hMenu, ID_GO_FRONT, bEnable?MF_BYCOMMAND|MF_ENABLED:MF_BYCOMMAND|MF_GRAYED);
SendMessage(m_hToolbar, TB_SETSTATE, ID_GO_FRONT, bEnable?TBSTATE_ENABLED:TBSTATE_INDETERMINATE);
}
///////////////////////////////////////////////////////////////
void CCmdBands::SetEnableBack(BOOL bEnable)
{
HMENU hMenu = CommandBar_GetMenu(m_hMenubar, 0);
EnableMenuItem(hMenu, ID_GO_BACK, bEnable?MF_BYCOMMAND|MF_ENABLED:MF_BYCOMMAND|MF_GRAYED);
SendMessage(m_hToolbar, TB_SETSTATE, ID_GO_BACK, bEnable?TBSTATE_ENABLED:TBSTATE_INDETERMINATE);
}
///////////////////////////////////////////////////////////////
void CCmdBands::SetEnableCompressSelected(HMENU hMenu, int nPos, int nPos2, DWORD nCompDLL)
{
HMENU hSubMenu = hMenu;
HMENU hSubMenu2 = hMenu;
if(nPos != -1)
hSubMenu = GetSubMenu(hMenu, nPos);
if(nPos2 != -1)
hSubMenu2 = GetSubMenu(hMenu, nPos2);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -