QMenu* sTreeWidget::newMenu(xmlItem obj){ QMenu* menu = new QMenu; qDebug() << obj.nodeName(); if(obj.nodeName() == md_spravochniki){ QAction *act = new QAction("Новый справочник..",this); connect(act,SIGNAL(triggered()),this,SLOT(NewObjMd())); menu->addAction(act); } if(obj.nodeName() == md_documents){ QAction *act = new QAction("Новый документ..",this); connect(act,SIGNAL(triggered()),this,SLOT(NewObjMd())); menu->addAction(act); } if(obj.nodeName() == md_element){ QAction *act = new QAction("Добавить",this); connect(act,SIGNAL(triggered()),this,SLOT(NewElement())); menu->addAction(act); } if(obj.nodeName() == md_forms){ QAction *act = new QAction("Добавить",this); connect(act,SIGNAL(triggered()),this,SLOT(NewForm())); menu->addAction(act); } if(obj.nodeName() == md_field){ QAction *edit = new QAction("Редактировать",this); connect(edit,SIGNAL(triggered()),this,SLOT(EditElement())); menu->addAction(edit); QAction *del = new QAction("Удалить",this); connect(del,SIGNAL(triggered()),this,SLOT(DelElement())); menu->addAction(del); } return menu; }
BOOL CALLBACK dlgToolbarProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam){ TBBUTTON ToolBtn[9] = { {0, IDC_TOOLBAR_NEW, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0, 0, 0}, {1, IDC_TOOLBAR_OPEN, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0, 0, 0}, {2, IDC_TOOLBAR_SAVE, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0, 0, 0}, {3, IDC_TOOLBAR_SAVEAS, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0, 0, 0}, {0, IDC_TOOLBAR_SEP, 0, TBSTYLE_SEP, 0, 0, 0, 0}, {4, IDC_TOOLBAR_FINDER, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0, 0, 0}, {5, IDC_TOOLBAR_TRANSPARENT, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0, 0, 0}, {0, IDC_TOOLBAR_SEP, 0, TBSTYLE_SEP, 0, 0, 0, 0}, {6, IDC_TOOLBAR_EXIT, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0, 0, 0} }; TCHAR lpstrFile[MAX_PATH] = TEXT(""); switch(message) { case WM_INITDIALOG: HWND hToolbar; // Set global variable g_hDlgToolbar = hDlg; // Create toolbar control InitCommonControls(); hToolbar = CreateToolbarEx(hDlg, WS_CHILD | WS_VISIBLE | WS_BORDER | TBSTYLE_TOOLTIPS, ID_TOOLBAR, 7, g_hInst, IDB_TOOLBARITEM, ToolBtn, 9, 16, 16, 16, 16, sizeof(TBBUTTON)); // Resize dialog MoveWindow(hDlg, 0, 0, 183, 53, TRUE); return TRUE; case WM_COMMAND: int rtnMsg; OPENFILENAME ofn; switch(LOWORD(wParam)) { case IDC_TOOLBAR_NEW: if (g_numZone != -1) { rtnMsg = MessageBox(hDlg, TEXT("현재 폼을 저장하시겠습니까?"), TEXT("저장"), MB_YESNO | MB_ICONQUESTION); if (rtnMsg == 6) SendMessage(hDlg, WM_COMMAND, MAKELPARAM(IDC_TOOLBAR_SAVE, 0), 0); } NewForm(); break; case IDC_TOOLBAR_OPEN: if (g_numZone != -1) { rtnMsg = MessageBox(hDlg, TEXT("현재 폼을 저장하시겠습니까?"), TEXT("저장"), MB_YESNO | MB_ICONQUESTION); if (rtnMsg == 6) SendMessage(hDlg, WM_COMMAND, MAKELPARAM(IDC_TOOLBAR_SAVE, 0), 0); } memset(&ofn, 0, sizeof(OPENFILENAME)); ofn.lStructSize = sizeof(OPENFILENAME); ofn.hwndOwner = hDlg; ofn.lpstrFilter = TEXT("Form Files(*.sdfrm)\0*.sdfrm\0"); ofn.lpstrFile = lpstrFile; ofn.nMaxFile = MAX_PATH; if (GetOpenFileName(&ofn) == 0) break; LoadFormFile((LPSTR)lpstrFile); break; case IDC_TOOLBAR_SAVE: if (lstrcmp(g_formPath, TEXT("")) == 0) { memset(&ofn, 0, sizeof(OPENFILENAME)); ofn.lStructSize = sizeof(OPENFILENAME); ofn.hwndOwner = hDlg; ofn.lpstrFilter = TEXT("Form Files(*.sdfrm)\0*.sdfrm\0"); ofn.lpstrFile = lpstrFile; ofn.nMaxFile = MAX_PATH; ofn.lpstrTitle = TEXT("저장"); if (GetSaveFileName(&ofn) == 0) break; if (SaveFormFile((LPSTR)lpstrFile) == FALSE) MessageBox(hDlg, TEXT("폼에 영역이 없어서 저장할 수 없습니다."), TEXT("에러"), MB_ICONERROR); } else if (SaveFormFile((LPSTR)g_formPath) == FALSE) MessageBox(hDlg, TEXT("폼에 영역이 없어서 저장할 수 없습니다."), TEXT("에러"), MB_ICONERROR); break; case IDC_TOOLBAR_SAVEAS: memset(&ofn, 0, sizeof(OPENFILENAME)); ofn.lStructSize = sizeof(OPENFILENAME); ofn.hwndOwner = hDlg; ofn.lpstrFilter = TEXT("Form Files(*.sdfrm)\0*.sdfrm\0"); ofn.lpstrFile = lpstrFile; ofn.nMaxFile = MAX_PATH; if (GetSaveFileName(&ofn) == 0) break; if (SaveFormFile((LPSTR)lpstrFile) == FALSE) MessageBox(hDlg, TEXT("폼에 영역이 없어서 저장할 수 없습니다."), TEXT("에러"), MB_ICONERROR); break; case IDC_TOOLBAR_FINDER: if (IsWindowVisible(g_hDlgFinder)) ShowWindow(g_hDlgFinder, SW_HIDE); else ShowWindow(g_hDlgFinder, SW_SHOW); break; case IDC_TOOLBAR_TRANSPARENT: if (IsWindowVisible(g_hDlgTransparent)) ShowWindow(g_hDlgTransparent, SW_HIDE); else ShowWindow(g_hDlgTransparent, SW_SHOW); break; case IDC_TOOLBAR_EXIT: if (g_numZone != -1) { rtnMsg = MessageBox(hDlg, TEXT("현재 폼을 저장하시겠습니까?"), TEXT("저장"), MB_YESNO | MB_ICONQUESTION); if (rtnMsg == 6) SendMessage(hDlg, WM_COMMAND, MAKELPARAM(IDC_TOOLBAR_SAVE, 0), 0); } SaveToolsSettings(); g_numZone = -1; EndDialog(g_hDlgBoard, NULL); break; } break; case WM_NOTIFY: switch(((LPNMHDR)lParam)->code) { case TTN_GETDISPINFO: switch(wParam) { case IDC_TOOLBAR_NEW: ((LPNMTTDISPINFO)lParam)->lpszText = "새로 만들기"; break; case IDC_TOOLBAR_OPEN: ((LPNMTTDISPINFO)lParam)->lpszText = "열기"; break; case IDC_TOOLBAR_SAVE: ((LPNMTTDISPINFO)lParam)->lpszText = "저장"; break; case IDC_TOOLBAR_SAVEAS: ((LPNMTTDISPINFO)lParam)->lpszText = "다른 이름으로 저장"; break; case IDC_TOOLBAR_FINDER: ((LPNMTTDISPINFO)lParam)->lpszText = "파인더"; break; case IDC_TOOLBAR_TRANSPARENT: ((LPNMTTDISPINFO)lParam)->lpszText = "투명도 설정"; break; case IDC_TOOLBAR_EXIT: ((LPNMTTDISPINFO)lParam)->lpszText = "종료"; break; } } break; } return FALSE; }