1
// generated by Fast Light User Interface Designer (fluid) version 1.0303
3
#ifndef fltk_indicator_h
4
#define fltk_indicator_h
6
#include <FL/Fl_JPEG_Image.H>
7
#include <FL/Fl_PNG_Image.H>
8
#include <FL/Fl_XBM_Image.H>
9
#include <FL/Fl_XPM_Image.H>
10
#include <FL/Fl_GIF_Image.H>
17
#include <sys/types.h>
19
#include <sys/sendfile.h> // sendfile
39
#include <alsa/asoundlib.h>
51
int ChangeVolume(long volume);
53
int AlsaMute(FltkVolume::audio_volume_action action, bool mute=false, snd_mixer_selem_channel_id_t channel = SND_MIXER_SCHN_FRONT_LEFT);
54
int AlsaMasterVolume(FltkVolume::audio_volume_action action, long *volume, snd_mixer_selem_channel_id_t channel = SND_MIXER_SCHN_FRONT_LEFT);
56
#include <FL/Fl_Double_Window.H>
57
#include <FL/Fl_Text_Display.H>
58
#include <FL/Fl_Button.H>
59
#include <FL/Fl_Input.H>
60
#include <FL/Fl_Slider.H>
61
#include <FL/Fl_Box.H>
65
bool NOTIFIEDLOW, CHARGING;
66
std::vector<std::string> m_themesVector;
68
std::string m_gtk_theme;
70
std::vector<std::string> m_ICON_PATHS;
73
std::string MIXER_PROGRAM;
74
FltkVolume m_volumecontrol;
77
int action(int event,bool battery=false);
78
const char* batt_info();
79
Fl_Double_Window* batt_info_window();
80
Fl_Double_Window *batt_info_win;
81
Fl_Text_Display *b_info_txt;
83
inline void cb_Quit_i(Fl_Button*, void*);
84
static void cb_Quit(Fl_Button*, void*);
86
static void battery_CB(void* myclass);
87
Fl_Double_Window* battery_menu();
88
Fl_Double_Window *batt_menu;
89
Fl_Button *shutdown_button;
91
inline void cb_shutdown_button_i(Fl_Button*, void*);
92
static void cb_shutdown_button(Fl_Button*, void*);
94
Fl_Button *info_button;
96
inline void cb_info_button_i(Fl_Button*, void*);
97
static void cb_info_button(Fl_Button*, void*);
99
Fl_Button *batt_pref_button;
101
inline void cb_Quit1_i(Fl_Button*, void*);
102
static void cb_Quit1(Fl_Button*, void*);
104
void battery_toggle();
105
Fl_Double_Window* battery_window();
106
Fl_Double_Window *battery_win;
107
Fl_Button *battery_icon;
109
inline void cb_battery_icon_i(Fl_Button*, void*);
110
static void cb_battery_icon(Fl_Button*, void*);
112
void change_volume(double vol);
113
void changeWidgetIcon(std::string icon_file, Fl_Widget * widget,bool save=true);
114
std::vector<std::string> comma_vector(std::string LINE,std::vector<std::string> Vector);
115
std::string convert_num_to_string(int num);
116
unsigned int convert_string_to_number(std::string num);
117
std::string current_path(int whichPath);
118
std::vector<std::string> delimiter_vector_from_string(std::string string_to_become_vector,std::string delimiter);
119
std::vector<std::string> desktop_dirs();
120
std::string find_xdg_data_dir_subdir(std::string subdir);
121
std::string get_battery();
122
std::string get_default_mixer();
123
std::string get_directory_from_filename(std::string filename);
124
Window get_dock(void);
125
std::string get_equal_value(std::string INTERNAL_LINE);
126
std::vector<std::string> get_file_vector(std::string DIRECTORY,std::string file);
127
unsigned int get_fl_color(XColor *c);
128
std::string get_gtk_icon_theme();
129
std::string get_line_with_delim(std::string filename, std::string line,std::string delim);
130
std::string get_line_with_equal(std::string filename, std::string line);
131
std::string get_mixer();
133
int getProcIdByName(std::string procName);
134
std::string get_shell_for_C();
135
std::string get_symlinkpath(std::string symlink);
137
bool has_file_extention_at_end(std::string filename,std::string extention);
138
unsigned int items_in_path();
139
std::vector<std::string> IconPaths(int size_to_use=32);
140
std::vector<std::string> IconPathsForTheme(std::string theme,int size_to_use=32);
141
std::vector<std::string> icon_themefiles_vector();
144
std::vector<std::string> join_string_vectors(std::vector<std::string> vectorA,std::vector<std::string> vectorB);
145
std::vector<std::string> list_icon_dirs_in_themefile(std::string themefile,int size_to_use);
146
std::string look_for_icon_file(std::string fileWITHOUTpath);
147
std::string look_for_file_in_subdirs(std::string fileWITHOUTpath,std::string dir);
148
std::string look_for_first_file_in_subdirs(std::string fileWITHOUTpath,std::string dir);
149
bool look_for_string_in_vector(std::vector<std::string> vector_to_check,std::string item_to_find);
152
void make_indicator(Fl_Window* client);
154
Fl_Double_Window* make_preferences();
155
Fl_Double_Window *pref_win;
156
Fl_Input *mixer_name;
158
inline void cb_OK_i(Fl_Button*, void*);
159
static void cb_OK(Fl_Button*, void*);
160
inline void cb_Cancel_i(Fl_Button*, void*);
161
static void cb_Cancel(Fl_Button*, void*);
163
Fl_Double_Window* make_window();
164
Fl_Double_Window *win;
165
Fl_Button *status_icon;
167
inline void cb_status_icon_i(Fl_Button*, void*);
168
static void cb_status_icon(Fl_Button*, void*);
170
Fl_Double_Window* menu_window();
171
Fl_Double_Window *menu_win;
172
Fl_Button *sett_button;
174
inline void cb_sett_button_i(Fl_Button*, void*);
175
static void cb_sett_button(Fl_Button*, void*);
177
Fl_Button *mix_button;
179
inline void cb_mix_button_i(Fl_Button*, void*);
180
static void cb_mix_button(Fl_Button*, void*);
181
inline void cb_Quit2_i(Fl_Button*, void*);
182
static void cb_Quit2(Fl_Button*, void*);
185
bool program_is_running(std::string program_line);
186
std::string remove_cruft(std::string StringInput, std::string CruftToRemove);
187
int run_a_program_in_background(std::string program);
188
int run(std::string program);
189
static void* run_in_bg(void *userdata);
190
std::string sed_i(std::string input, std::string remove, std::string replace);
191
void set_battery_icon(std::string icon);
192
void set_indicator_icon(std::string icon);
194
std::vector<std::string> sort_array(std::vector<std::string> vector_to_sort);
195
bool test_dir(std::string dirToTest);
196
bool test_exec(std::string execToTest);
197
bool test_file(std::string fileWithFullPATH);
198
std::string test_file_in_vector_path(std::string fileWithNOPATH,std::vector<std::string> directories_to_check);
199
std::string term_out(std::string terminal_Command_You_Want_Output_From);
200
static void timer_CB(void* myclass);
201
void toggle_batt_info();
203
void toggle_volume();
205
bool untrap_errors();
206
void update_battery();
207
void update_volume();
208
Fl_Double_Window* volume_window();
209
Fl_Double_Window *volume_slider;
212
inline void cb_slide_i(Fl_Slider*, void*);
213
static void cb_slide(Fl_Slider*, void*);
217
std::string volumeText();
219
int main(int argc, char *argv[]);
220
void trace(std::string msg);