📄 uguitables.c
字号:
/*----------------------------------------------------------------------------- File: UgUITables.c Description: ProTK doc code sample PTC File Date Version Author Vers Comment--------- ------- -------- ----- ---------------------------------------------08-Jul-02 J-03-29 JCN $$1 Submitted.-----------------------------------------------------------------------------*/#include <ProToolkit.h>#include <ProUI.h>#include <ProUIDialog.h>#include <ProUIPushbutton.h>#include <ProUITable.h>#define UGUITABLEDLG "uguitableexample"/*====================================================================*\FUNCTION: UserTableDialogCloseActionPURPOSE: Close action for "Close" button in table examples\*====================================================================*/static void UserTableDialogCloseAction (char* dialog, char* button, ProAppData data){ ProUIDialogExit (UGUITABLEDLG, PRO_TK_NO_ERROR);}/*====================================================================*\FUNCTION: UserUITableRedesignExample PURPOSE: Change the table columns and rows before displaying the dialog\*====================================================================*/int UserUITableRedesignExample () { int status; int column_count; wchar_t** column_labels; char** column_names; int new_column_count = 3; char* new_column_names [] = {"Column A", "Column B", "Column C"}; wchar_t* new_column_labels [] = {L"First", L"Second", L"Third"};/*--------------------------------------------------------------------*\ Load the dialog from the resource file \*--------------------------------------------------------------------*/ ProUIDialogCreate(UGUITABLEDLG, UGUITABLEDLG);/*--------------------------------------------------------------------*\ Set the Close button actions \*--------------------------------------------------------------------*/ ProUIPushbuttonActivateActionSet(UGUITABLEDLG,"CloseButton", UserTableDialogCloseAction, NULL);/*--------------------------------------------------------------------*\ Get the list of column names and labels\*--------------------------------------------------------------------*/ ProUITableColumnnamesGet (UGUITABLEDLG, "LargeTable", &column_count, &column_names); ProUITableColumnlabelsGet (UGUITABLEDLG, "LargeTable", &column_count, &column_labels);/*--------------------------------------------------------------------*\ Assign the column names to the rows\*--------------------------------------------------------------------*/ ProUITableRownamesSet (UGUITABLEDLG, "LargeTable", column_count, column_names); ProUITableRowlabelsSet (UGUITABLEDLG, "LargeTable", column_count, column_labels);/*--------------------------------------------------------------------*\ Free the retrieved arrays\*--------------------------------------------------------------------*/ ProStringarrayFree (column_names, column_count); ProWstringarrayFree (column_labels, column_count);/*--------------------------------------------------------------------*\ Modify the column names and labels\*--------------------------------------------------------------------*/ ProUITableColumnnamesSet (UGUITABLEDLG, "LargeTable", new_column_count, new_column_names); ProUITableColumnlabelsSet (UGUITABLEDLG, "LargeTable", new_column_count, new_column_labels);/*--------------------------------------------------------------------*\ Display and activate the dialog \*--------------------------------------------------------------------*/ ProUIDialogActivate(UGUITABLEDLG, &status);/*--------------------------------------------------------------------*\ Remove the dialog from memory \*--------------------------------------------------------------------*/ ProUIDialogDestroy(UGUITABLEDLG); return(1); }/*====================================================================*\FUNCTION: UserTableDialogSelectionsTogglePURPOSE: UI callback function to toggle contents of table cells\*====================================================================*/static void UserTableDialogSelectionsToggle (char* dialog, char* button, ProAppData data){ char** selections; int selection_count; wchar_t* label; int i; ProUITableSelectednamesGet (UGUITABLEDLG, "LargeTable", &selection_count, &selections);/*--------------------------------------------------------------------*\ Selected names are arranged in sets of 2 ("Row", "Column")\*--------------------------------------------------------------------*/ for (i = 0; i < selection_count; i = i + 2) { ProUITableCellLabelGet (UGUITABLEDLG, "LargeTable", selections [i], selections [i+1], &label); if (label != NULL && ProUtilWstrcmp (label, L"ON") == 0) { ProUITableCellLabelSet (UGUITABLEDLG, "LargeTable", selections [i], selections [i+1], L"OFF"); } else { ProUITableCellLabelSet (UGUITABLEDLG, "LargeTable", selections [i], selections [i+1], L"ON"); } if (label != NULL) ProWstringFree (label); } ProStringarrayFree (selections, selection_count);}/*====================================================================*\FUNCTION: UserUITableSelectionExample PURPOSE: Change the table columns and rows before displaying the dialog\*====================================================================*/int UserUITableSelectionExample () { int status; /*--------------------------------------------------------------------*\ Load the dialog from the resource file \*--------------------------------------------------------------------*/ ProUIDialogCreate(UGUITABLEDLG, UGUITABLEDLG);/*--------------------------------------------------------------------*\ Set the Close button actions \*--------------------------------------------------------------------*/ ProUIPushbuttonActivateActionSet(UGUITABLEDLG,"CloseButton", UserTableDialogCloseAction, NULL);/*--------------------------------------------------------------------*\ Set up the Modify Select button\*--------------------------------------------------------------------*/ ProUIPushbuttonShow (UGUITABLEDLG, "ModifySelectButton"); ProUIPushbuttonActivateActionSet(UGUITABLEDLG,"ModifySelectButton", UserTableDialogSelectionsToggle, NULL);/*--------------------------------------------------------------------*\ Set the selection policy to multiple\*--------------------------------------------------------------------*/ ProUITableSelectionpolicySet (UGUITABLEDLG, "LargeTable", PROUISELPOLICY_MULTIPLE);/*--------------------------------------------------------------------*\ Display and activate the dialog \*--------------------------------------------------------------------*/ ProUIDialogActivate(UGUITABLEDLG, &status);/*--------------------------------------------------------------------*\ Remove the dialog from memory \*--------------------------------------------------------------------*/ ProUIDialogDestroy(UGUITABLEDLG); return(1); }/*====================================================================*\FUNCTION: UserUITableComponentExample PURPOSE: Add components to the table cells\*====================================================================*/int UserUITableComponentExample () { int status; /*--------------------------------------------------------------------*\ Load the dialog from the resource file \*--------------------------------------------------------------------*/ ProUIDialogCreate(UGUITABLEDLG, UGUITABLEDLG);/*--------------------------------------------------------------------*\ Set the Close button actions \*--------------------------------------------------------------------*/ ProUIPushbuttonActivateActionSet(UGUITABLEDLG,"CloseButton", UserTableDialogCloseAction, NULL);/*--------------------------------------------------------------------*\ Assign a predefined table components from the table layout\*--------------------------------------------------------------------*/ ProUITableCellComponentNameSet (UGUITABLEDLG, "LargeTable", "A", "1", "BaseButton");/*--------------------------------------------------------------------*\ Copy a table component into a table cell\*--------------------------------------------------------------------*/ ProUITableCellComponentCopy (UGUITABLEDLG, "LargeTable", "C", "3", UGUITABLEDLG, "BaseCheckButton", "CheckButtonC3"); ProUICheckbuttonSet (UGUITABLEDLG, "CheckButtonC3");/*--------------------------------------------------------------------*\ Copy a non-table component into a table & assign it to a table cell\*--------------------------------------------------------------------*/ ProUITableComponentCopy (UGUITABLEDLG, "LargeTable", UGUITABLEDLG, "ToCopy", "CopyOfOptionMenu"); ProUITableCellComponentNameSet (UGUITABLEDLG, "LargeTable", "B", "2", "CopyOfOptionMenu"); ProUIOptionmenuShow (UGUITABLEDLG, "CopyOfOptionMenu");/*--------------------------------------------------------------------*\ Copy a component from another dialog and assign it to a table cell\*--------------------------------------------------------------------*/ ProUIDialogCreate ("uguitablecomponents", "uguitablecomponents"); ProUITableCellComponentCopy (UGUITABLEDLG, "LargeTable", "D", "4", "uguitablecomponents", "ExternalButtonToCopy", "CopyOfExternalButton"); ProUIDialogDestroy ("uguitablecomponents");/*--------------------------------------------------------------------*\ Display and activate the dialog \*--------------------------------------------------------------------*/ ProUIDialogActivate(UGUITABLEDLG, &status);/*--------------------------------------------------------------------*\ Remove the dialog from memory \*--------------------------------------------------------------------*/ ProUIDialogDestroy(UGUITABLEDLG); return(1); }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -