Guangzhou Qite MACHINERY Co.,LTD,
|
Price: | 15.0 USD |
Payment Terms: | T/T,L/C,D/A,WU |
Place of Origin: | Guangdong, China (Mainland) |
Add to My Favorites | |
HiSupplier Escrow |
We 100% guarantee your satisfaction, with our products, for life.
No batteries, wires, cords, software. No electricity, required, at all. It's 100% Active Analog – advanced electromagnetism.
It's not digital (although you can make it sound like it is).
works great on guitar (electric or acoustic) plugged or unplugged, bass (it turns every bass into a fretless, instantly), banjo, ukulele, mandolin, etc.
(Note: the magnets are permanent, hidden, and powerful. There is no need to recharge, remove, or replace them… ever.)
V
This topic describes how to complete the following tasks programmatically.
Associating the data type of the ring control with values
Converting between label, value, and indices of items
Creating a ring slide control
Customizing the fill color
Customizing the slider appearance
Deleting and replacing items in the ring slide control
Obtaining the number of items
Obtaining the value and index of the currently selected item
Setting the active item
Setting the default item
Removing check marks from the ring control
Setting text styles for ring items
Use the NewCtrl function to create a ring slide control. The ring slide control is empty initially. To insert items, call InsertListItem.
int ringSlide;
ringSlide = NewCtrl (panelHandle, CTRL_RING_POINTER_VSLIDE_LS, "Ring Slide", 30, 110);
InsertListItem (panelHandle, ringSlide, -1, "Rising Clock Edge", 0);
InsertListItem (panelHandle, ringSlide, -1, "Falling Clock Edge", 1);
InsertListItem (panelHandle, ringSlide, -1, "Both Clock Edges", 2);
SetCtrlAttribute (panelHandle, ringSlide, ATTR_HEIGHT, 120);
You can set the active item based on ring item index or the value of the ring item.
int val, index;
GetCtrlVal (panelHandle, PANEL_NUMERIC, &val);
SetCtrlVal (panelHandle, ringSlide, val); // Based on value
GetCtrlVal (panelHandle, PANEL_NUMERIC, &index);
SetCtrlIndex (panelHandle, ringSlide, index); // Based on index
Call DeleteListItem to delete a specified number of items from the ring control.
int idxToDel, numToDel;
GetCtrlVal (panelHandle, PANEL_INDEXDEL, &idxToDel);
GetCtrlVal (panelHandle, PANEL_DELITEMS, &numToDel);
DeleteListItem (panelHandle, PANEL_RINGSLIDE, idxToDel, numToDel);
Call ClearListCtrl to delete all of the items in the ring control.
ClearListCtrl (panelHandle, PANEL_RINGSLIDE);
Call ReplaceListItem to substitute one list item with another one you specify.
ReplaceListItem (panelHandle, PANEL_RINGSLIDE, 2, "Both Clock Edges", 2);
int count;
GetNumListItems (panelHandle, PANEL_RINGSLIDE, &count);
int itemIndex, itemValue;
GetCtrlIndex (panelHandle, PANEL_RING, &itemIndex);
SetCtrlVal (panelHandle, PANEL_DEVINDEX, itemIndex);
GetCtrlVal (panelHandle, PANEL_RING, &itemValue);
SetCtrlVal (panelHandle, PANEL_VALINDEX, itemValue);
The data type for a ring slide control determines the type of data you can use for the value of ring items. You must match the values you pass to some of the functions with the data type of the control. The pointers you pass to functions that return values must also be compatible with the current data type of the control.
To set the data type, use the ATTR_DATA_TYPE attribute.
SetCtrlAttribute (panelHandle, dataRingSlide, ATTR_DATA_TYPE, VAL_STRING);
Because the data type of the values in the ring slide control is a character array in this instance, you must make sure the values you pass to the ring slide control and pointers to obtain values from the ring slide control are also string values.
InsertListItem (panelHandle, dataRingSlide, 0, "Int", "4 byte integer");
InsertListItem (panelHandle, dataRingSlide, -1, "Char", "Single byte character");
InsertListItem (panelHandle, dataRingSlide, -1, "Double", "8 byte floating point value");
InsertListItem (panelHandle, dataRingSlide, -1, "String", "Character array");
You can convert between labels, values, and indices of ring slide control items.
int index, ringLabelLen, ringIdx, ringValue;
char *ringLabel = NULL;
// Convert index to value
GetCtrlIndex (panelHandle, PANEL_RINGSLIDE, &ringIdx);
GetValueFromIndex (panelHandle, PANEL_RINGSLIDE, ringIdx, &ringValue);
SetCtrlVal (panelHandle, PANEL_VALUE, ringValue);
// Convert index to label
GetLabelLengthFromIndex (panelHandle, PANEL_RINGSLIDE, ringIdx, &ringLabelLen);
GetLabelLength appends a NULL byte to the end of the text string, so you must make the buffer 1 byte larger than the value obtained from GetLabelLengthFromIndex.
ringLabel = malloc (sizeof(char) * (ringLabelLen + 1));
GetLabelFromIndex (panelHandle, PANEL_RINGSLIDE, ringIdx, ringLabel);
SetCtrlVal (panelHandle, PANEL_LABEL, ringLabel);
// Convert value to index
GetIndexFromValue (panelHandle, PANEL_RINGSLIDE, &index, ringValue);
SetCtrlVal (panelHandle, PANEL_INDEX, index);
Specify the default item by index or by value. If you call the following example code after the call to LoadPanel, you must call DefaultCtrl to update the user interface.
// By index
SetCtrlAttribute (panelHandle, PANEL_RINGSLIDE, ATTR_DFLT_INDEX, 2);
DefaultCtrl (panelHandle, PANEL_RINGSLIDE);
// By value
SetCtrlAttribute (panelHandle, PANEL_RINGSLIDE, ATTR_DFLT_VALUE, 1);
DefaultCtrl (panelHandle, PANEL_RINGSLIDE);
SetCtrlAttribute (panelHandle, ringSlide, ATTR_SLIDER_COLOR, VAL_BLACK);
SetCtrlAttribute (panelHandle, ringSlide, ATTR_SLIDER_HEIGHT, 15);
SetCtrlAttribute (panelHandle, ringSlide, ATTR_SLIDER_WIDTH, 25);
SetCtrlAttribute (panelHandle, ringSlide, ATTR_FILL_OPTION, VAL_BOTTOM_FILL);
SetCtrlAttribute (panelHandle, ringSlide, ATTR_FILL_COLOR, VAL_WHITE);
SetCtrlAttribute (panelHandle, ringSlide, ATTR_FILL_HOUSING_COLOR, VAL_DK_GRAY);
SetCtrlAttribute (panelHandle, PANEL_RINGSLIDE, ATTR_DISABLE_CHECK_MARK, 0);
SetCtrlAttribute (panelHandle, ringSlide, ATTR_TEXT_BOLD, 1);
SetCtrlAttribute (panelHandle, ringSlide, ATTR_TEXT_FONT, "Times New Roman");
Programming with Controls
Ring Slide Control Functions