//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//controltype_frame_insertpluginmenu
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
void controltype_frame_insertpluginmenu(control *c, Menu *m)
{
	const char menu_title[] = "Plugins";
	Menu *sub = make_menu(menu_title, c);

	controltype_label_details *details = (controltype_label_details *) c->controldetails;
	make_menuitem_cmd(sub, "Load Plugin...", config_getfull_control_plugin_c(c, "Load", "*browse*"));
	static const char *submenu_titles[] = { "Unload Plugin", "Visibility" };
	for (int n = 0; n < 2; n++)
	{
		Menu *sub2 = make_menu(submenu_titles[n], c);
		ModuleInfo *mi = details->module_info;
		if (NULL == mi) make_menuitem_nop(sub2, "No plugins loaded");
		for (;mi; mi=mi->next)
		{
			if (0 == n)
			{
				make_menuitem_bol(sub2, mi->module_name,
								  config_getfull_control_plugin_c(c, "Unload", mi->module_name), false);
			}
			else
				if (1 == n)
				{
					bool temp = !plugin_getset_show_state(details->plugin_info, mi->module_name, 3);
					make_menuitem_bol(sub2, mi->module_name,
									  config_getfull_control_plugin_prop_b(c, mi->module_name, "IsVisible", temp), !temp);
				}
		}
		make_submenu_item(sub, submenu_titles[n], sub2);
	}
	if (details->module_info)
		make_menuitem_cmd(sub, "About Plugins", config_getfull_control_plugin_s(c, "About"));

	make_submenu_item(m, menu_title, sub);
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//agenttype_bitmap_menu_context
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
void agenttype_bitmap_menu_context(std::shared_ptr<bb::MenuConfig> m, agent *a)
{
	//Get the agent details
	agenttype_bitmap_details *details = (agenttype_bitmap_details *) a->agentdetails;	

	//For convenience, change the bitmap source without changing the settings
	make_menuitem_cmd(m, L"Change Source...", config_getfull_control_setagentprop_c(a->controlptr, a->agentaction, L"Source", L"*browse*"));

	if (details->is_icon)
	{
		make_menuitem_int(m, L"Icon Size",
                                          config_getfull_control_setagentprop_s(a->controlptr, a->agentaction, L"Size"),
                                          details->width, 1, 256);
	}
	else if (details->filename)
	{
		make_menuitem_int(m, L"Scale",
                                          config_getfull_control_setagentprop_s(a->controlptr, a->agentaction, L"Scale"),
                                          details->scale, 1, 500);
	}
	std::shared_ptr<bb::MenuConfig> submenu = make_menu(L"Image Alignment", a->controlptr);
	make_menuitem_bol(submenu, L"Left", config_getfull_control_setagentprop_c(a->controlptr, a->agentaction, L"HAlign", L"Left"), details->halign == 1);
	make_menuitem_bol(submenu, L"Center", config_getfull_control_setagentprop_c(a->controlptr, a->agentaction, L"HAlign", L"Center"), details->halign == 0);
	make_menuitem_bol(submenu, L"Right", config_getfull_control_setagentprop_c(a->controlptr, a->agentaction, L"HAlign", L"Right"), details->halign == 2);
	make_menuitem_nop(submenu, L"");
	make_menuitem_bol(submenu, L"Top", config_getfull_control_setagentprop_c(a->controlptr, a->agentaction, L"VAlign", L"Top"), details->valign == 1);
	make_menuitem_bol(submenu, L"Center", config_getfull_control_setagentprop_c(a->controlptr, a->agentaction, L"VAlign", L"Center"), details->valign == 0);
	make_menuitem_bol(submenu, L"Bottom", config_getfull_control_setagentprop_c(a->controlptr, a->agentaction, L"VAlign", L"Bottom"), details->valign == 2);
	make_submenu_item(m, L"Image Alignment", submenu);
}
Пример #3
0
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//agenttype_graph_menu_set
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
void agenttype_graph_menu_set(Menu *m, control *c, agent *a,  char *action, int controlformat)
{
	for (int i = 0; i < AGENTTYPE_GRAPH_CHARTTYPECOUNT; i++)
	{
		make_menuitem_cmd(m, agenttype_graph_friendlycharttypes[i], config_getfull_control_setagent_c(c, action, "Graph", agenttype_graph_charttypes[i]));
	}
}
Пример #4
0
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//agenttype_winamppoller_text_menu_set
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
void agenttype_winamppoller_text_menu_set(Menu *m, control *c, agent *a,  char *action, int controlformat)
{
	for (int i = WINAMP_POLLINGTYPE_LASTSCALE + 1; i < WINAMP_POLLINGTYPECOUNT; i++)
	{
		make_menuitem_cmd(m, agenttype_winamp_friendlynames[i], config_getfull_control_setagent_c(c, action, "WinampText", agenttype_winamp_pollingnames[i]));
	}
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//agenttype_systemmonitor_menu_set
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
void agenttype_systemmonitor_menu_set(Menu *m, control *c, agent *a,  char *action, int controlformat)
{
	//Add a menu item for every type
	for (int i = 1; i < SYSTEMMONITOR_NUMTYPES; i++)
	{
		make_menuitem_cmd(m, agenttype_systemmonitor_friendlytypes[i], config_getfull_control_setagent_c(c, action, "SystemMonitor", agenttype_systemmonitor_types[i]));
	}
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//agenttype_systeminfo_menu_set
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
void agenttype_systeminfo_menu_set(std::shared_ptr<bb::MenuConfig> m, control *c, agent *a,  wchar_t *action, int controlformat)
{
	//Add a menu item for every type
	for (int i = 1; i < SYSTEMINFO_NUMTYPES; i++)
	{
		make_menuitem_cmd(m, agenttype_systeminfo_friendlytypes[i], config_getfull_control_setagent_c(c, action, L"SystemInfo", agenttype_systeminfo_types[i]));
	}
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//agenttype_diskspacemonitor_menu_set
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
void agenttype_diskspacemonitor_menu_set(Menu *m, control *c, agent *a,  char *action, int controlformat)
{
	//Add a menu item for every type
	for (int i = 1; i < DISKSPACEMONITOR_NUMTYPES; i++)
	{
		make_menuitem_cmd(m, agenttype_diskspacemonitor_friendlytypes[i], config_getfull_control_setagent_c(c, action, "DiskSpaceMonitor", agenttype_diskspacemonitor_types[i]));
	}
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//agenttype_networkmonitor_menu_set
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
void agenttype_networkmonitor_menu_set(Menu *m, control *c, agent *a,  char *action, int controlformat)
{
	//Add a menu item for every type
	for (int i = 0; i < AGENTTYPE_NETWORKMONITOR_NUMINTERFACES; i++)
	{
		make_menuitem_cmd(m, agenttype_networkmonitor_friendlyinterfaces[i], config_getfull_control_setagent_c(c, action, "NetworkMonitor", agenttype_networkmonitor_interface_numbers[i]));
	}
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//agenttype_switchedstate_menu_set
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
void agenttype_switchedstate_menu_set(Menu *m, control *c, agent *a,  char *action, int controlformat)
{
	char temp[32] = "";
	switch(controlformat)
	{
		case CONTROL_FORMAT_TEXT: strcpy(temp, agenttype_switchedstate_typenames[AGENTTYPE_SWITCHEDSTATE_TYPE_TEXT]); break;
		case CONTROL_FORMAT_IMAGE: strcpy(temp, agenttype_switchedstate_typenames[AGENTTYPE_SWITCHEDSTATE_TYPE_IMAGE]); break;
		case CONTROL_FORMAT_TRIGGER: strcpy(temp, agenttype_switchedstate_typenames[AGENTTYPE_SWITCHEDSTATE_TYPE_TRIGGER]); break;
		default: 
			make_menuitem_nop(m, "Invalid type.");
			break;
	}

	make_menuitem_cmd(m, "Set", config_getfull_control_setagent_c(c, action, "SwitchedState", temp));
}
Пример #10
0
//##################################################
//menu_control_pluginoptions
//##################################################
void menu_control_pluginoptions(Menu *m)
{
	Menu *submenu;
	submenu = make_menu("Configuration");
	make_submenu_item(submenu, "Modules", module_menu_modulelist());
	make_submenu_item(submenu, "Edit Modules", module_menu_editmodules());
	make_submenu_item(submenu, "Set Default Module", module_menu_setactivemodule());
	make_menuitem_nop(submenu, NULL);
	make_menuitem_cmd(submenu, "Load Configuration Script...", config_get_plugin_load_dialog());
	make_menuitem_cmd(submenu, "Edit Configuration Script", config_get_plugin_edit());
	make_menuitem_nop(submenu, NULL);
	make_menuitem_cmd(submenu, "Save Configuration", config_get_plugin_save());
	make_menuitem_cmd(submenu, "Save Configuration As...", config_get_plugin_saveas());
	make_menuitem_nop(submenu, NULL);
	make_menuitem_cmd(submenu, "Reload Configuration", config_get_plugin_revert());
	make_submenu_item(m, "Configuration", submenu);

	submenu = make_menu("Help");
	make_menuitem_cmd(submenu, "Quick Reference...", "@BBInterface Plugin About QuickHelp");
	make_menuitem_cmd(submenu, "About...", "@BBInterface Plugin About");
	make_menuitem_cmd(submenu, "Show Welcome Interface", "@BBInterface Plugin Load WelcomeScript\\welcome.rc");
	make_submenu_item(m, "Help", submenu);
}
Пример #11
0
void menu_control_interfaceoptions(Menu *m, control *c)
{
	//Variables
	Menu *submenu, *submenu2;
	//Make the operations menu  
	submenu = make_menu("Interface Operations", c);

	//Create new controls
	submenu2 = make_menu("Create New Control", c);
	control_menu_create(submenu2, c, false);
	make_submenu_item(submenu, "Create New Control", submenu2);
	if (c->controltypeptr->can_parent) //If it can be a parent
	{
		submenu2 = make_menu("Create New Child Control", c);
		control_menu_create(submenu2, c, true);
		make_submenu_item(submenu, "Create New Child Control", submenu2);
	}
	make_menuitem_cmd(submenu,"Create New Module",config_get_module_create());
	make_menuitem_nop(submenu, NULL);
	control_menu_settings(submenu, c);
	make_submenu_item(m, "Interface Operations", submenu);
}
//##################################################
//agenttype_mixer_menu_linecontrols
//##################################################
int agenttype_mixer_menu_linecontrols(Menu *menu, control *c, char *action, char *agentname, int format, UINT device, HMIXER mixer_handle, MIXERLINE &mixer_line)
{
	//Variables
	MIXERLINECONTROLS   mixer_linecontrols;
	MIXERCONTROL        mixer_controls[8];
	int elementcount = 0;
	char text_item[256];
	char text_params[256];
	const char *type;

	//Setup the function call with required values
	UINT count_control = mixer_line.cControls;
	if (count_control > 8) count_control = 8;   //Maximum 8 controls per line
	mixer_linecontrols.cbStruct = sizeof(MIXERLINECONTROLS);
	mixer_linecontrols.cControls = count_control;
	mixer_linecontrols.dwLineID = mixer_line.dwLineID;
	mixer_linecontrols.pamxctrl = &mixer_controls[0];
	mixer_linecontrols.cbmxctrl = sizeof(MIXERCONTROL);

	//Figure out the type
	if (format == CONTROL_FORMAT_SCALE)
	{
		type = mixer_name_scale;
	}
	else if (format == CONTROL_FORMAT_BOOL)
	{
		type = mixer_name_bool;
	}
	else return 0;

	//Get the line controls
	if (MMSYSERR_NOERROR !=  mixerGetLineControls((HMIXEROBJ)mixer_handle, &mixer_linecontrols, MIXER_GETLINECONTROLSF_ALL))
	{
		return 0;
	}

	//For every control
	for (unsigned int control = 0; control < count_control; control++)
	{
		bool passestest = false;
		switch (format)
		{
			case CONTROL_FORMAT_SCALE:
				passestest = (mixer_controls[control].dwControlType == MIXERCONTROL_CONTROLTYPE_VOLUME
								|| mixer_controls[control].dwControlType == MIXERCONTROL_CONTROLTYPE_BASS
								|| mixer_controls[control].dwControlType == MIXERCONTROL_CONTROLTYPE_TREBLE
								|| mixer_controls[control].dwControlType == MIXERCONTROL_CONTROLTYPE_FADER);
				

				break;
			case CONTROL_FORMAT_BOOL:
				passestest = (mixer_controls[control].dwControlType == MIXERCONTROL_CONTROLTYPE_BOOLEAN
								|| mixer_controls[control].dwControlType == MIXERCONTROL_CONTROLTYPE_BUTTON
								|| mixer_controls[control].dwControlType == MIXERCONTROL_CONTROLTYPE_LOUDNESS
								|| mixer_controls[control].dwControlType == MIXERCONTROL_CONTROLTYPE_MONO
								|| mixer_controls[control].dwControlType == MIXERCONTROL_CONTROLTYPE_MUTE
								|| mixer_controls[control].dwControlType == MIXERCONTROL_CONTROLTYPE_ONOFF
								|| mixer_controls[control].dwControlType == MIXERCONTROL_CONTROLTYPE_STEREOENH);
				break;
		}
		if (passestest)

		{
			elementcount++;
			sprintf(text_item, "- %s", mixer_controls[control].szName);
			sprintf(text_params, "%d %d %d", device, (int)mixer_line.dwLineID, (int)mixer_controls[control].dwControlID);         
			make_menuitem_cmd(menu, text_item, config_getfull_control_setagent_c(c, action, type, text_params));
		}
	}

	return elementcount;
}
Пример #13
0
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//agenttype_icon_menu_set
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
void agenttype_icon_menu_set(std::shared_ptr<bb::MenuConfig> m, control *c, agent *a,  wchar_t *action, int controlformat)
{
	make_menuitem_cmd(m, L"Browse...", config_getfull_control_setagent_c(c, action, L"Icon", L"*browse*"));
}
Пример #14
0
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//agenttype_icon_menu_set
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
void agenttype_icon_menu_set(Menu *m, control *c, agent *a,  char *action, int controlformat)
{
	make_menuitem_cmd(m, "Browse...", config_getfull_control_setagent_c(c, action, "Icon", "*browse*"));
}
Пример #15
0
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//agenttype_winamppoller_scale_menu_set
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
void agenttype_winamppoller_scale_menu_set(Menu *m, control *c, agent *a,  char *action, int controlformat)
{
	make_menuitem_cmd(m, "Track Position", config_getfull_control_setagent_c(c, action, "WinampScale", "TrackPosition"));
}
Пример #16
0
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//agenttype_winamppoller_bool_menu_set
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
void agenttype_winamppoller_bool_menu_set(Menu *m, control *c, agent *a,  char *action, int controlformat)
{
	make_menuitem_cmd(m, "Track Is Playing", config_getfull_control_setagent_c(c, action, "WinampBool", "IsPlaying"));
}