/** * @brief Resize the workspaces * * Resize all internal workspace to a new number of elements if necessary. * * @param w New number of elements of the main workspace * @param rw New number of elements of the real part workspace * @param iw New number of elements of the integer workspace * @param bw New number of elements of the boolean workspace **/ void resize ( std::size_t w , std::size_t rw = 0u , std::size_t iw = 0u , std::size_t bw = 0u ) { resize_main(w); resize_reals(rw); resize_integers(iw); resize_logicals(bw); }
int16 maindial_exit_cb(WDIALOG *wd, int16 obj) { int16 close = FALSE; extern int16 quit; switch (obj) { case WD_CLOSER : close = TRUE; debug("Closer ohne UNDO-Button!\n"); break; case MAIN_QUIT : close = TRUE; if(_app) quit = TRUE; break; case T_SIZE: resize_main( wd ); break; case HELP_BOX: open_hyp( "*:\\mcontrol.hyp", "" ); default: if( !sld_event( &msld, obj ) ) dyn_event( wd, obj ); break; } if (close) {} wdial_deselect( wd, obj, close ); return close; }
LRESULT CALLBACK MainDlg(HWND hwnd,UINT msg,WPARAM wparam,LPARAM lparam) { static HWND grippy=0; static int col=0,dir=0; #ifdef _DEBUG // if(FALSE) // if(message!=0x200&&message!=0x84&&message!=0x20&&message!=WM_ENTERIDLE) if(msg!=WM_MOUSEFIRST&&msg!=WM_NCHITTEST&&msg!=WM_SETCURSOR&&msg!=WM_ENTERIDLE&&msg!=WM_DRAWITEM &&msg!=WM_CTLCOLORBTN&&msg!=WM_CTLCOLOREDIT) //if(msg!=WM_NCHITTEST&&msg!=WM_SETCURSOR&&msg!=WM_ENTERIDLE) { static DWORD tick=0; if((GetTickCount()-tick)>500) printf("--\n"); printf("*"); print_msg(msg,lparam,wparam); tick=GetTickCount(); } #endif switch(msg) { case WM_INITDIALOG: hlistview=CreateWindow(WC_LISTVIEW,"",WS_TABSTOP|WS_CHILD|WS_CLIPSIBLINGS|WS_VISIBLE|LVS_REPORT|LVS_SHOWSELALWAYS, 0,0, 0,0, hwnd, IDC_LIST1, ghinstance, NULL); ListView_SetExtendedListViewStyle(hlistview,LVS_EX_FULLROWSELECT); populate_list(hlistview,TRUE); sort_listview(hlistview,dir,col); grippy=create_grippy(hwnd); PostMessage(hwnd,WM_SIZE,0,0); //dump_main(hwnd); break; case WM_HELP: show_main_help(hwnd,(HELPINFO *)lparam); return TRUE; break; case WM_SIZE: grippy_move(hwnd,grippy); resize_main(hwnd); break; case WM_CONTEXTMENU: break; case WM_NOTIFY: { NMHDR *nmhdr=lparam; if(nmhdr!=0 && nmhdr->idFrom==IDC_LIST1){ LV_HITTESTINFO lvhit={0}; switch(nmhdr->code){ case NM_DBLCLK: GetCursorPos(&lvhit.pt); ScreenToClient(nmhdr->hwndFrom,&lvhit.pt); if(ListView_SubItemHitTest(nmhdr->hwndFrom,&lvhit)>=0) do_regjump(hlistview); break; case NM_RCLICK: case NM_CLICK: GetCursorPos(&lvhit.pt); ScreenToClient(nmhdr->hwndFrom,&lvhit.pt); if(ListView_SubItemHitTest(nmhdr->hwndFrom,&lvhit)>=0){ } printf("item = %i\n",lvhit.iSubItem); break; case LVN_ITEMCHANGED: { } break; case LVN_KEYDOWN: { } break; case LVN_COLUMNCLICK: { NMLISTVIEW *nmlv=lparam; col=nmlv->iSubItem; dir=!dir; sort_listview(hlistview,dir,col); } break; } } } break; case WM_VKEYTOITEM: switch(LOWORD(wparam)){ case '0':case '1':case'2':case'3':case'4':case'5': break; } return -1; break; case WM_CHARTOITEM: switch(wparam){ case 'z': break; case 'x': break; } break; case WM_COMMAND: switch(LOWORD(wparam)){ case IDC_REFRESH: { RECT rect={0}; RECT newrect={0}; int dx,dy,mark; ListView_GetItemRect(hlistview,0,&rect,LVIR_BOUNDS); mark=ListView_GetSelectionMark(hlistview); populate_list(hlistview,FALSE); sort_listview(hlistview,dir,col); ListView_GetItemRect(hlistview,0,&newrect,LVIR_BOUNDS); dx=-rect.left+newrect.left; dy=-rect.top+newrect.top; ListView_Scroll(hlistview,dx,dy); if(mark>=0) ListView_SetItemState(hlistview,mark,LVIS_FOCUSED|LVIS_SELECTED,LVIS_FOCUSED|LVIS_SELECTED); SetFocus(hlistview); } break; case IDC_INFO: do_regjump(hlistview); break; case IDOK: break; case IDCANCEL: DestroyWindow(hwnd); PostQuitMessage(0); return TRUE; break; } break; case WM_QUERYENDSESSION: SetWindowLong(hwnd,DWL_MSGRESULT,TRUE); //ok to end session return TRUE; case WM_ENDSESSION: if(wparam){ SetWindowLong(hwnd,DWL_MSGRESULT,0); DestroyWindow(hwnd); PostQuitMessage(0); return TRUE; } break; case WM_CLOSE: DestroyWindow(hwnd); PostQuitMessage(0); return TRUE; break; } return 0; }