panel snapshot
git-svn-id: http://tint2.googlecode.com/svn/trunk@260 121b4492-b84c-0410-8b4c-0d4edfb3f3cc
This commit is contained in:
parent
6057106425
commit
07fff0ca72
3 changed files with 42 additions and 20 deletions
|
@ -52,7 +52,7 @@
|
||||||
|
|
||||||
// global path
|
// global path
|
||||||
char *config_path = 0;
|
char *config_path = 0;
|
||||||
char *thumbnail_path = 0;
|
char *snapshot_path = 0;
|
||||||
|
|
||||||
// --------------------------------------------------
|
// --------------------------------------------------
|
||||||
// backward compatibility
|
// backward compatibility
|
||||||
|
|
|
@ -10,7 +10,7 @@
|
||||||
#define CONFIG_H
|
#define CONFIG_H
|
||||||
|
|
||||||
extern char *config_path;
|
extern char *config_path;
|
||||||
extern char *thumbnail_path;
|
extern char *snapshot_path;
|
||||||
|
|
||||||
void init_config();
|
void init_config();
|
||||||
void cleanup_config();
|
void cleanup_config();
|
||||||
|
|
58
src/tint.c
58
src/tint.c
|
@ -49,21 +49,27 @@ void signal_handler(int sig)
|
||||||
|
|
||||||
void init (int argc, char *argv[])
|
void init (int argc, char *argv[])
|
||||||
{
|
{
|
||||||
int c;
|
int i;
|
||||||
|
|
||||||
// read options
|
// read options
|
||||||
while ((c = getopt(argc , argv, "c:j:v")) != -1) {
|
for (i = 1; i < argc; ++i) {
|
||||||
switch (c) {
|
if (!strcmp(argv[i], "-h") || !strcmp(argv[i], "--help")) {
|
||||||
case 'c':
|
printf("Usage: tint2 [-c] <config_file>\n");
|
||||||
config_path = strdup (optarg);
|
|
||||||
break;
|
|
||||||
case 'j':
|
|
||||||
thumbnail_path = strdup (optarg);
|
|
||||||
break;
|
|
||||||
case 'v':
|
|
||||||
printf("tint2 version 0.7-svn\n");
|
|
||||||
exit(0);
|
exit(0);
|
||||||
break;
|
}
|
||||||
|
if (!strcmp(argv[i], "-v") || !strcmp(argv[i], "--version")) {
|
||||||
|
printf("tint2 version 0.7.svn\n");
|
||||||
|
exit(0);
|
||||||
|
}
|
||||||
|
if (!strcmp(argv[i], "-c")) {
|
||||||
|
i++;
|
||||||
|
if (i < argc)
|
||||||
|
config_path = strdup(argv[i]);
|
||||||
|
}
|
||||||
|
if (!strcmp(argv[i], "-s")) {
|
||||||
|
i++;
|
||||||
|
if (i < argc)
|
||||||
|
snapshot_path = strdup(argv[i]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -91,7 +97,7 @@ void init (int argc, char *argv[])
|
||||||
server.visual = DefaultVisual (server.dsp, server.screen);
|
server.visual = DefaultVisual (server.dsp, server.screen);
|
||||||
server.desktop = server_get_current_desktop ();
|
server.desktop = server_get_current_desktop ();
|
||||||
XGCValues gcv;
|
XGCValues gcv;
|
||||||
server.gc = XCreateGC (server.dsp, server.root_win, (unsigned long)0, &gcv) ;
|
server.gc = XCreateGC (server.dsp, server.root_win, (unsigned long)0, &gcv);
|
||||||
|
|
||||||
XSetErrorHandler ((XErrorHandler) server_catch_error);
|
XSetErrorHandler ((XErrorHandler) server_catch_error);
|
||||||
|
|
||||||
|
@ -105,7 +111,6 @@ void init (int argc, char *argv[])
|
||||||
setlocale (LC_ALL, "");
|
setlocale (LC_ALL, "");
|
||||||
|
|
||||||
// load default icon
|
// load default icon
|
||||||
int i;
|
|
||||||
char *path;
|
char *path;
|
||||||
const gchar * const *data_dirs;
|
const gchar * const *data_dirs;
|
||||||
data_dirs = g_get_system_data_dirs ();
|
data_dirs = g_get_system_data_dirs ();
|
||||||
|
@ -138,7 +143,7 @@ void cleanup()
|
||||||
imlib_free_image();
|
imlib_free_image();
|
||||||
}
|
}
|
||||||
if (config_path) g_free(config_path);
|
if (config_path) g_free(config_path);
|
||||||
if (thumbnail_path) g_free(thumbnail_path);
|
if (snapshot_path) g_free(snapshot_path);
|
||||||
|
|
||||||
if (server.monitor) free(server.monitor);
|
if (server.monitor) free(server.monitor);
|
||||||
XFreeGC(server.dsp, server.gc);
|
XFreeGC(server.dsp, server.gc);
|
||||||
|
@ -146,6 +151,24 @@ void cleanup()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void get_snapshot(const char *path)
|
||||||
|
{
|
||||||
|
Panel *panel = &panel1[0];
|
||||||
|
|
||||||
|
if (panel->temp_pmap) XFreePixmap(server.dsp, panel->temp_pmap);
|
||||||
|
panel->temp_pmap = XCreatePixmap(server.dsp, server.root_win, panel->area.width, panel->area.height, server.depth);
|
||||||
|
|
||||||
|
refresh(&panel->area);
|
||||||
|
|
||||||
|
Imlib_Image img = NULL;
|
||||||
|
imlib_context_set_drawable(panel->temp_pmap);
|
||||||
|
img = imlib_create_image_from_drawable(0, 0, 0, panel->area.width, panel->area.height, 0);
|
||||||
|
|
||||||
|
imlib_context_set_image(img);
|
||||||
|
imlib_save_image(path);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
Taskbar *click_taskbar (Panel *panel, int x, int y)
|
Taskbar *click_taskbar (Panel *panel, int x, int y)
|
||||||
{
|
{
|
||||||
Taskbar *tskbar;
|
Taskbar *tskbar;
|
||||||
|
@ -718,9 +741,8 @@ int main (int argc, char *argv[])
|
||||||
}
|
}
|
||||||
init_panel();
|
init_panel();
|
||||||
cleanup_config();
|
cleanup_config();
|
||||||
if (thumbnail_path) {
|
if (snapshot_path) {
|
||||||
// usage: tint2 -j <file> for internal use
|
get_snapshot(snapshot_path);
|
||||||
printf("file %s\n", thumbnail_path);
|
|
||||||
cleanup();
|
cleanup();
|
||||||
exit(0);
|
exit(0);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue