#include <cairo.h>
#include <cairo-xlib.h>
#include <pango/pangocairo.h>
-#include <unistd.h>
-#include <signal.h>
#include <stdlib.h>
#include "window.h"
#include "taskbar.h"
#include "clock.h"
#include "timer.h"
+#include "common.h"
-char *time1_format=0;
-char *time1_timezone=0;
-char *time2_format=0;
-char *time2_timezone=0;
-char *time_tooltip_format=0;
-char *time_tooltip_timezone=0;
-char *clock_lclick_command=0;
-char *clock_rclick_command=0;
+char *time1_format;
+char *time1_timezone;
+char *time2_format;
+char *time2_timezone;
+char *time_tooltip_format;
+char *time_tooltip_timezone;
+char *clock_lclick_command;
+char *clock_rclick_command;
struct timeval time_clock;
-PangoFontDescription *time1_font_desc=0;
-PangoFontDescription *time2_font_desc=0;
+PangoFontDescription *time1_font_desc;
+PangoFontDescription *time2_font_desc;
static char buf_time[40];
static char buf_date[40];
static char buf_tooltip[40];
int clock_enabled;
-static timeout* clock_timeout=0;
+static timeout* clock_timeout;
+
+
+void default_clock()
+{
+ clock_enabled = 0;
+ clock_timeout = 0;
+ time1_format = 0;
+ time1_timezone = 0;
+ time2_format = 0;
+ time2_timezone = 0;
+ time_tooltip_format = 0;
+ time_tooltip_timezone = 0;
+ clock_lclick_command = 0;
+ clock_rclick_command = 0;
+ time1_font_desc = 0;
+ time2_font_desc = 0;
+}
+
+void cleanup_clock()
+{
+ if (time1_font_desc) pango_font_description_free(time1_font_desc);
+ if (time2_font_desc) pango_font_description_free(time2_font_desc);
+ if (time1_format) g_free(time1_format);
+ if (time2_format) g_free(time2_format);
+ if (time_tooltip_format) g_free(time_tooltip_format);
+ if (time1_timezone) g_free(time1_timezone);
+ if (time2_timezone) g_free(time2_timezone);
+ if (time_tooltip_timezone) g_free(time_tooltip_timezone);
+ if (clock_lclick_command) g_free(clock_lclick_command);
+ if (clock_rclick_command) g_free(clock_rclick_command);
+}
void update_clocks_sec(void* arg)
clock->area.parent = p;
clock->area.panel = p;
clock->area._draw_foreground = draw_clock;
+ clock->area.size_mode = SIZE_BY_CONTENT;
clock->area._resize = resize_clock;
clock->area.resize = 1;
clock->area.redraw = 1;
}
-void cleanup_clock()
-{
- clock_enabled = 0;
- if (time1_font_desc) {
- pango_font_description_free(time1_font_desc);
- time1_font_desc = 0;
- }
- if (time2_font_desc) {
- pango_font_description_free(time2_font_desc);
- time2_font_desc = 0;
- }
- if (time1_format) {
- g_free(time1_format);
- time1_format = 0;
- }
- if (time2_format) {
- g_free(time2_format);
- time2_format = 0;
- }
- if (time_tooltip_format) {
- g_free(time_tooltip_format);
- time_tooltip_format = 0;
- }
- if (time1_timezone) {
- g_free(time1_timezone);
- time1_timezone = 0;
- }
- if (time2_timezone) {
- g_free(time2_timezone);
- time2_timezone = 0;
- }
- if (time_tooltip_timezone) {
- g_free(time_tooltip_timezone);
- time_tooltip_timezone = 0;
- }
- if (clock_lclick_command) {
- g_free(clock_lclick_command);
- clock_lclick_command = 0;
- }
- if (clock_rclick_command) {
- g_free(clock_rclick_command);
- clock_rclick_command = 0;
- }
-}
-
-
void draw_clock (void *obj, cairo_t *c)
{
Clock *clock = obj;
command = clock_rclick_command;
break;
}
- if (command) {
- pid_t pid;
- pid = fork();
- if (pid == 0) {
- // change for the fork the signal mask
-// sigset_t sigset;
-// sigprocmask(SIG_SETMASK, &sigset, 0);
-// sigprocmask(SIG_UNBLOCK, &sigset, 0);
- execl("/bin/sh", "/bin/sh", "-c", command, NULL);
- _exit(0);
- }
- }
+ tint_exec(command);
}