Compare commits
7 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
df8136b62e | ||
![]() |
09cebb7863 | ||
![]() |
a62121368f | ||
![]() |
8b255bb012 | ||
![]() |
0743fbc88f | ||
![]() |
57d3aac667 | ||
![]() |
9b5b74c2b2 |
8
NEWS
8
NEWS
@@ -1,3 +1,11 @@
|
||||
Overview of changes in Alarm Clock 0.3.4 "Hipp, hipp"
|
||||
===============================================================
|
||||
|
||||
Bugs fixed:
|
||||
1122500 - Don't cancel the next alarm if alarm triggers a day late
|
||||
1137453 - Port to GStreamer 1.0
|
||||
|
||||
|
||||
Overview of changes in Alarm Clock 0.3.3 "Squish"
|
||||
===============================================================
|
||||
|
||||
|
2
README
2
README
@@ -13,7 +13,7 @@ You need at least:
|
||||
gconf-2.0
|
||||
gio-2.0
|
||||
gnome-icon-theme
|
||||
gstreamer-0.10.2
|
||||
gstreamer-1.0
|
||||
libnotify-0.4.1
|
||||
libxml-2.0
|
||||
unique-1.0
|
||||
|
@@ -4,7 +4,7 @@
|
||||
|
||||
m4_define([alarm_clock_major_version], [0])
|
||||
m4_define([alarm_clock_minor_version], [3])
|
||||
m4_define([alarm_clock_micro_version], [3])
|
||||
m4_define([alarm_clock_micro_version], [4])
|
||||
|
||||
m4_define([alarm_clock_version],
|
||||
[alarm_clock_major_version.alarm_clock_minor_version.alarm_clock_micro_version])
|
||||
@@ -53,7 +53,7 @@ GTK_REQUIRED=2.12.0
|
||||
|
||||
PKG_CHECK_MODULES(BASE, [glib-2.0 >= $GLIB_REQUIRED gmodule-2.0])
|
||||
PKG_CHECK_MODULES(GTK, [gtk+-2.0 >= $GTK_REQUIRED])
|
||||
PKG_CHECK_MODULES(GSTREAMER, [gstreamer-0.10])
|
||||
PKG_CHECK_MODULES(GSTREAMER, [gstreamer-1.0])
|
||||
PKG_CHECK_MODULES(GNOME,
|
||||
[gconf-2.0
|
||||
gio-2.0
|
||||
|
@@ -849,7 +849,7 @@
|
||||
<property name="type_hint">normal</property>
|
||||
<property name="program_name">Alarm Clock</property>
|
||||
<property name="version">0.0.0</property>
|
||||
<property name="copyright">© 2007-2012 Johannes H. Jensen</property>
|
||||
<property name="copyright">© 2007-2015 Johannes H. Jensen</property>
|
||||
<property name="comments" translatable="yes">Get up in the morning!</property>
|
||||
<property name="website">http://alarm-clock.pseudoberries.com/</property>
|
||||
<property name="website_label">alarm-clock.pseudoberries.com</property>
|
||||
|
@@ -745,11 +745,18 @@ alarm_settings_sound_preview (GtkButton *button, gpointer data)
|
||||
media_player_stop (dialog->player);
|
||||
} else {
|
||||
// Start preview player
|
||||
if (dialog->player == NULL)
|
||||
if (dialog->player == NULL) {
|
||||
dialog->player = media_player_new (dialog->alarm->sound_file,
|
||||
dialog->alarm->sound_loop,
|
||||
preview_player_state_cb, dialog,
|
||||
media_player_error_cb, dialog->dialog);
|
||||
if (dialog->player == NULL) {
|
||||
// Unable to create player
|
||||
alarm_error_trigger (dialog->alarm, ALARM_ERROR_PLAY,
|
||||
_("Could not create player! Please check your sound settings."));
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
g_debug ("AlarmSettingsDialog: preview_start...");
|
||||
media_player_start (dialog->player);
|
||||
|
57
src/alarm.c
57
src/alarm.c
@@ -922,7 +922,7 @@ alarm_error_quark (void)
|
||||
static void
|
||||
alarm_error (Alarm *alarm, GError *err)
|
||||
{
|
||||
g_debug ("Alarm(%p) #%d: alarm_error: #%d: %s", alarm, alarm->id, err->code, err->message);
|
||||
g_critical ("Alarm(%p) #%d: alarm_error: #%d: %s", alarm, alarm->id, err->code, err->message);
|
||||
}
|
||||
|
||||
void
|
||||
@@ -965,7 +965,7 @@ alarm_alarm (Alarm *alarm)
|
||||
// Do we want to repeat this alarm?
|
||||
if (alarm_should_repeat (alarm)) {
|
||||
g_debug ("Alarm(%p) #%d: alarm() Repeating...", alarm, alarm->id);
|
||||
alarm_update_timestamp_full (alarm, FALSE);
|
||||
alarm_update_timestamp (alarm);
|
||||
} else {
|
||||
alarm_disable (alarm);
|
||||
}
|
||||
@@ -1785,15 +1785,15 @@ alarm_time_is_future (struct tm *tm, guint hour, guint minute, guint second)
|
||||
* Set time according to hour, min, sec and alarm->repeat
|
||||
*/
|
||||
static void
|
||||
alarm_set_timestamp (Alarm *alarm, guint hour, guint minute, guint second, gboolean include_today)
|
||||
alarm_set_timestamp (Alarm *alarm, guint hour, guint minute, guint second)
|
||||
{
|
||||
time_t now, new;
|
||||
gint i, d, wday;
|
||||
AlarmRepeat rep;
|
||||
struct tm *tm;
|
||||
|
||||
g_debug ("Alarm(%p) #%d: set_timestamp (%d, %d, %d, %d)", alarm, alarm->id,
|
||||
hour, minute, second, include_today);
|
||||
g_debug ("Alarm(%p) #%d: set_timestamp (%d, %d, %d)", alarm, alarm->id,
|
||||
hour, minute, second);
|
||||
|
||||
time (&now);
|
||||
tm = localtime (&now);
|
||||
@@ -1801,38 +1801,24 @@ alarm_set_timestamp (Alarm *alarm, guint hour, guint minute, guint second, gbool
|
||||
// Automatically detect Daylight Savings Time (DST)
|
||||
tm->tm_isdst = -1;
|
||||
|
||||
//i = (today == 6) ? 0 : today + 1;
|
||||
//today--;
|
||||
|
||||
if (alarm->repeat == ALARM_REPEAT_NONE) {
|
||||
// Check if the alarm is for tomorrow
|
||||
if (!alarm_time_is_future (tm, hour, minute, second)) {
|
||||
|
||||
//if (wday < 0) {
|
||||
g_debug("\tAlarm is for tomorrow.");
|
||||
tm->tm_mday++;
|
||||
/*} else {
|
||||
// wday == tm->tm_wday
|
||||
g_debug("alarm_set_time_full: Alarm is in 1 week.");
|
||||
tm->tm_mday += 7;
|
||||
}*/
|
||||
g_debug("\tAlarm is for tomorrow.");
|
||||
tm->tm_mday++;
|
||||
}
|
||||
} else {
|
||||
// REPEAT SET: Find the closest repeat day
|
||||
wday = -1;
|
||||
|
||||
i = tm->tm_wday;
|
||||
if (!include_today)
|
||||
i++;
|
||||
|
||||
// Try finding a day in this week
|
||||
for (; i < 7; i++) {
|
||||
rep = 1 << i;
|
||||
if (alarm->repeat & rep) {
|
||||
if (i == tm->tm_wday && !alarm_time_is_future (tm, hour, minute, second)) continue;
|
||||
|
||||
// FOUND!
|
||||
//g_debug ("\tMATCH");
|
||||
wday = i;
|
||||
break;
|
||||
}
|
||||
@@ -1842,9 +1828,7 @@ alarm_set_timestamp (Alarm *alarm, guint hour, guint minute, guint second, gbool
|
||||
if (wday == -1) {
|
||||
for (i = 0; i <= tm->tm_wday; i++) {
|
||||
rep = 1 << i;
|
||||
if (alarm->repeat & rep/* && alarm_time_is_future (tm, hour, minute, second)*/) {
|
||||
// FOUND!
|
||||
//g_debug ("\tMATCH");
|
||||
if (alarm->repeat & rep) {
|
||||
wday = i;
|
||||
break;
|
||||
}
|
||||
@@ -1853,16 +1837,14 @@ alarm_set_timestamp (Alarm *alarm, guint hour, guint minute, guint second, gbool
|
||||
|
||||
g_debug ("Closest WDAY = %d", wday);
|
||||
|
||||
if (wday == tm->tm_wday && (!include_today || !alarm_time_is_future (tm, hour, minute, second)))
|
||||
if (wday == tm->tm_wday && (!alarm_time_is_future (tm, hour, minute, second)))
|
||||
wday = 7;
|
||||
|
||||
|
||||
// Calculate distance from now to wday
|
||||
if (wday == 7) {
|
||||
g_debug("\tAlarm is in (forced) 1 week.");
|
||||
d = 7;
|
||||
} else {
|
||||
// g_debug ("\td = tm->tm_wday(%d) - wday(%d)", tm->tm_wday, wday);
|
||||
d = alarm_wday_distance (tm->tm_wday, wday);
|
||||
}
|
||||
|
||||
@@ -1875,11 +1857,6 @@ alarm_set_timestamp (Alarm *alarm, guint hour, guint minute, guint second, gbool
|
||||
tm->tm_min = minute;
|
||||
tm->tm_sec = second;
|
||||
|
||||
// DEBUG:
|
||||
char tmp[512];
|
||||
strftime (tmp, sizeof (tmp), "%c", tm);
|
||||
g_debug ("\tAlarm will trigger at %s", tmp);
|
||||
|
||||
new = mktime (tm);
|
||||
g_debug ("\tSetting to %d", (gint) new);
|
||||
g_object_set (alarm, "timestamp", new, NULL);
|
||||
@@ -1890,31 +1867,19 @@ alarm_set_timestamp (Alarm *alarm, guint hour, guint minute, guint second, gbool
|
||||
* hour/min/sec according to the time value.
|
||||
*/
|
||||
void
|
||||
alarm_update_timestamp_full (Alarm *alarm, gboolean include_today)
|
||||
alarm_update_timestamp (Alarm *alarm)
|
||||
{
|
||||
if (alarm->type == ALARM_TYPE_CLOCK) {
|
||||
struct tm *tm = alarm_get_time (alarm);
|
||||
g_debug ("Alarm(%p) #%d: update_timestamp_full: %d:%d:%d", alarm, alarm->id,
|
||||
tm->tm_hour, tm->tm_min, tm->tm_sec);
|
||||
alarm_set_timestamp (alarm, tm->tm_hour, tm->tm_min, tm->tm_sec, include_today);
|
||||
alarm_set_timestamp (alarm, tm->tm_hour, tm->tm_min, tm->tm_sec);
|
||||
} else {
|
||||
/* ALARM_TYPE_TIMER */
|
||||
g_object_set (alarm, "timestamp", time(NULL) + alarm->time, NULL);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Update the alarm timestamp to point to the nearest future
|
||||
* hour/min/sec according to the time value.
|
||||
*
|
||||
* Equivalent to alarm_update_timestamp_full (alarm, TRUE)
|
||||
*/
|
||||
void
|
||||
alarm_update_timestamp (Alarm *alarm)
|
||||
{
|
||||
alarm_update_timestamp_full (alarm, TRUE);
|
||||
}
|
||||
|
||||
/*
|
||||
* Get the alarm time.
|
||||
*/
|
||||
|
18
src/player.c
18
src/player.c
@@ -61,9 +61,9 @@ media_player_new (const gchar *uri, gboolean loop,
|
||||
gst_init (NULL, NULL);
|
||||
|
||||
/* Set up player */
|
||||
player->player = gst_element_factory_make ("playbin2", "player");
|
||||
audiosink = gst_element_factory_make ("gconfaudiosink", "player-audiosink");
|
||||
videosink = gst_element_factory_make ("gconfvideosink", "player-videosink");
|
||||
player->player = gst_element_factory_make ("playbin", "player");
|
||||
audiosink = gst_element_factory_make ("autoaudiosink", "player-audiosink");
|
||||
videosink = gst_element_factory_make ("autovideosink", "player-videosink");
|
||||
|
||||
if (!player->player || !audiosink || !videosink) {
|
||||
g_critical ("Could not create player.");
|
||||
@@ -86,6 +86,8 @@ media_player_new (const gchar *uri, gboolean loop,
|
||||
void
|
||||
media_player_free (MediaPlayer *player)
|
||||
{
|
||||
g_assert(player);
|
||||
|
||||
if (player->player)
|
||||
gst_object_unref (GST_OBJECT (player->player));
|
||||
|
||||
@@ -98,6 +100,8 @@ media_player_free (MediaPlayer *player)
|
||||
void
|
||||
media_player_set_uri (MediaPlayer *player, const gchar *uri)
|
||||
{
|
||||
g_assert(player);
|
||||
|
||||
g_object_set (player->player, "uri", uri, NULL);
|
||||
}
|
||||
|
||||
@@ -110,6 +114,8 @@ gchar *
|
||||
media_player_get_uri (MediaPlayer *player)
|
||||
{
|
||||
gchar *uri;
|
||||
|
||||
g_assert(player);
|
||||
|
||||
g_object_get (player->player, "uri", &uri, NULL);
|
||||
|
||||
@@ -122,6 +128,8 @@ media_player_get_uri (MediaPlayer *player)
|
||||
void
|
||||
media_player_set_state (MediaPlayer *player, MediaPlayerState state)
|
||||
{
|
||||
g_assert(player);
|
||||
|
||||
MediaPlayerState old = player->state;
|
||||
|
||||
player->state = state;
|
||||
@@ -232,6 +240,8 @@ media_player_start (MediaPlayer *player)
|
||||
{
|
||||
GstBus *bus;
|
||||
|
||||
g_assert(player);
|
||||
|
||||
// Attach bus watcher
|
||||
bus = gst_pipeline_get_bus (GST_PIPELINE (player->player));
|
||||
player->watch_id = gst_bus_add_watch (bus, (GstBusFunc) media_player_bus_cb, player);
|
||||
@@ -247,6 +257,8 @@ media_player_start (MediaPlayer *player)
|
||||
void
|
||||
media_player_stop (MediaPlayer *player)
|
||||
{
|
||||
g_assert(player);
|
||||
|
||||
if (player->watch_id) {
|
||||
g_source_remove (player->watch_id);
|
||||
|
||||
|
@@ -1,810 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE glade-interface SYSTEM "glade-2.0.dtd">
|
||||
<!--*- mode: xml -*-->
|
||||
<glade-interface>
|
||||
<widget class="GtkDialog" id="preferences">
|
||||
<property name="width_request">290</property>
|
||||
<property name="title" translatable="yes">Alarm Clock Preferences</property>
|
||||
<property name="resizable">False</property>
|
||||
<property name="icon_name">alarm-clock</property>
|
||||
<property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
|
||||
<property name="has_separator">False</property>
|
||||
<child internal-child="vbox">
|
||||
<widget class="GtkVBox" id="prefs-container">
|
||||
<property name="visible">True</property>
|
||||
<child>
|
||||
<widget class="GtkVBox" id="vbox1">
|
||||
<property name="visible">True</property>
|
||||
<property name="border_width">12</property>
|
||||
<property name="spacing">6</property>
|
||||
<child>
|
||||
<widget class="GtkLabel" id="display-label">
|
||||
<property name="visible">True</property>
|
||||
<property name="xalign">0</property>
|
||||
<property name="label" translatable="yes"><b>Display</b></property>
|
||||
<property name="use_markup">True</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<widget class="GtkAlignment" id="display-alignment">
|
||||
<property name="visible">True</property>
|
||||
<property name="left_padding">12</property>
|
||||
<child>
|
||||
<widget class="GtkVBox" id="display-box">
|
||||
<property name="visible">True</property>
|
||||
<child>
|
||||
<widget class="GtkCheckButton" id="show-label">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="tooltip" translatable="yes">Show a label with info about upcoming alarms</property>
|
||||
<property name="label" translatable="yes">Show alarm _label</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="response_id">0</property>
|
||||
<property name="draw_indicator">True</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<widget class="GtkAlignment" id="label-type-align">
|
||||
<property name="visible">True</property>
|
||||
<property name="left_padding">12</property>
|
||||
<child>
|
||||
<widget class="GtkVBox" id="label-type-box">
|
||||
<property name="visible">True</property>
|
||||
<property name="sensitive">False</property>
|
||||
<property name="spacing">2</property>
|
||||
<child>
|
||||
<widget class="GtkRadioButton" id="time-radio">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="label" translatable="yes">_Alarm time</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="response_id">0</property>
|
||||
<property name="draw_indicator">True</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<widget class="GtkRadioButton" id="remain-radio">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="label" translatable="yes">_Remaining time</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="response_id">0</property>
|
||||
<property name="draw_indicator">True</property>
|
||||
<property name="group">time-radio</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</widget>
|
||||
</child>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</widget>
|
||||
</child>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child internal-child="action_area">
|
||||
<widget class="GtkHButtonBox" id="dialog-action_area1">
|
||||
<property name="visible">True</property>
|
||||
<property name="layout_style">GTK_BUTTONBOX_END</property>
|
||||
<child>
|
||||
<widget class="GtkButton" id="closebutton1">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="can_default">True</property>
|
||||
<property name="label">gtk-close</property>
|
||||
<property name="use_stock">True</property>
|
||||
<property name="response_id">-7</property>
|
||||
</widget>
|
||||
</child>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="pack_type">GTK_PACK_END</property>
|
||||
</packing>
|
||||
</child>
|
||||
</widget>
|
||||
</child>
|
||||
</widget>
|
||||
<widget class="GtkDialog" id="list-alarms">
|
||||
<property name="visible">True</property>
|
||||
<property name="title" translatable="yes">Alarms</property>
|
||||
<property name="destroy_with_parent">True</property>
|
||||
<property name="icon_name">alarm-clock</property>
|
||||
<property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
|
||||
<property name="has_separator">False</property>
|
||||
<child internal-child="vbox">
|
||||
<widget class="GtkVBox" id="dialog-vbox2">
|
||||
<property name="visible">True</property>
|
||||
<child>
|
||||
<widget class="GtkHBox" id="list-alarms-box">
|
||||
<property name="width_request">360</property>
|
||||
<property name="height_request">150</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="border_width">5</property>
|
||||
<property name="spacing">6</property>
|
||||
<child>
|
||||
<widget class="GtkScrolledWindow" id="list-alarms-scroll">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
|
||||
<property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
|
||||
<property name="shadow_type">GTK_SHADOW_IN</property>
|
||||
<child>
|
||||
<widget class="GtkTreeView" id="list-alarms-view">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
||||
<property name="headers_visible">False</property>
|
||||
<property name="enable_search">False</property>
|
||||
</widget>
|
||||
</child>
|
||||
</widget>
|
||||
</child>
|
||||
<child>
|
||||
<widget class="GtkVButtonBox" id="vbuttonbox1">
|
||||
<property name="visible">True</property>
|
||||
<property name="layout_style">GTK_BUTTONBOX_START</property>
|
||||
<child>
|
||||
<widget class="GtkButton" id="add-button">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="can_default">True</property>
|
||||
<property name="label">gtk-add</property>
|
||||
<property name="use_stock">True</property>
|
||||
<property name="response_id">0</property>
|
||||
</widget>
|
||||
</child>
|
||||
<child>
|
||||
<widget class="GtkButton" id="edit-button">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="can_default">True</property>
|
||||
<property name="label">gtk-edit</property>
|
||||
<property name="use_stock">True</property>
|
||||
<property name="response_id">0</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<widget class="GtkButton" id="delete-button">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="can_default">True</property>
|
||||
<property name="label">gtk-delete</property>
|
||||
<property name="use_stock">True</property>
|
||||
<property name="response_id">0</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="position">2</property>
|
||||
</packing>
|
||||
</child>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="pack_type">GTK_PACK_END</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child internal-child="action_area">
|
||||
<widget class="GtkHButtonBox" id="dialog-action_area3">
|
||||
<property name="visible">True</property>
|
||||
<property name="layout_style">GTK_BUTTONBOX_END</property>
|
||||
<child>
|
||||
<widget class="GtkButton" id="closebutton2">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="can_default">True</property>
|
||||
<property name="label">gtk-close</property>
|
||||
<property name="use_stock">True</property>
|
||||
<property name="response_id">-7</property>
|
||||
</widget>
|
||||
</child>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="pack_type">GTK_PACK_END</property>
|
||||
</packing>
|
||||
</child>
|
||||
</widget>
|
||||
</child>
|
||||
</widget>
|
||||
<widget class="GtkDialog" id="edit-alarm">
|
||||
<property name="visible">True</property>
|
||||
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
||||
<property name="border_width">5</property>
|
||||
<property name="title" translatable="yes">Edit alarm</property>
|
||||
<property name="resizable">False</property>
|
||||
<property name="window_position">GTK_WIN_POS_CENTER_ON_PARENT</property>
|
||||
<property name="destroy_with_parent">True</property>
|
||||
<property name="icon_name">alarm-clock</property>
|
||||
<property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
|
||||
<property name="has_separator">False</property>
|
||||
<child internal-child="vbox">
|
||||
<widget class="GtkVBox" id="dialog-vbox4">
|
||||
<property name="visible">True</property>
|
||||
<property name="spacing">6</property>
|
||||
<child>
|
||||
<widget class="GtkHBox" id="hbox2">
|
||||
<property name="height_request">36</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="spacing">2</property>
|
||||
<property name="homogeneous">True</property>
|
||||
<child>
|
||||
<widget class="GtkToggleButton" id="toggle-clock">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="response_id">0</property>
|
||||
<child>
|
||||
<placeholder/>
|
||||
</child>
|
||||
</widget>
|
||||
</child>
|
||||
<child>
|
||||
<widget class="GtkToggleButton" id="toggle-timer">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="response_id">0</property>
|
||||
<child>
|
||||
<placeholder/>
|
||||
</child>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<widget class="GtkTable" id="table2">
|
||||
<property name="visible">True</property>
|
||||
<property name="n_rows">2</property>
|
||||
<property name="n_columns">2</property>
|
||||
<property name="column_spacing">6</property>
|
||||
<property name="row_spacing">6</property>
|
||||
<child>
|
||||
<widget class="GtkHBox" id="hbox3">
|
||||
<property name="visible">True</property>
|
||||
<child>
|
||||
<widget class="GtkSpinButton" id="hour-spin">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
||||
<property name="adjustment">0 0 23 1 10 0</property>
|
||||
<property name="climb_rate">1</property>
|
||||
<property name="numeric">True</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<widget class="GtkLabel" id="label4">
|
||||
<property name="visible">True</property>
|
||||
<property name="label" translatable="yes"><span size="xx-large"><b>:</b></span></property>
|
||||
<property name="use_markup">True</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<widget class="GtkSpinButton" id="minute-spin">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
||||
<property name="adjustment">0 0 59 1 10 0</property>
|
||||
<property name="climb_rate">1</property>
|
||||
<property name="numeric">True</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="position">2</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<widget class="GtkLabel" id="label7">
|
||||
<property name="visible">True</property>
|
||||
<property name="label" translatable="yes"><span size="xx-large"><b>:</b></span></property>
|
||||
<property name="use_markup">True</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="position">3</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<widget class="GtkSpinButton" id="second-spin">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
||||
<property name="adjustment">0 0 59 1 10 0</property>
|
||||
<property name="climb_rate">1</property>
|
||||
<property name="numeric">True</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="position">4</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<widget class="GtkLabel" id="label3">
|
||||
<property name="visible">True</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="position">5</property>
|
||||
</packing>
|
||||
</child>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="left_attach">1</property>
|
||||
<property name="right_attach">2</property>
|
||||
<property name="top_attach">1</property>
|
||||
<property name="bottom_attach">2</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<widget class="GtkEntry" id="label-entry">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
||||
<property name="activates_default">True</property>
|
||||
<property name="text" translatable="yes">Wake up sleepy head!</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="left_attach">1</property>
|
||||
<property name="right_attach">2</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<widget class="GtkLabel" id="label2">
|
||||
<property name="visible">True</property>
|
||||
<property name="xalign">0</property>
|
||||
<property name="label" translatable="yes">_Time:</property>
|
||||
<property name="use_markup">True</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="mnemonic_widget">hour-spin</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="top_attach">1</property>
|
||||
<property name="bottom_attach">2</property>
|
||||
<property name="x_options"></property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<widget class="GtkLabel" id="label1">
|
||||
<property name="visible">True</property>
|
||||
<property name="xalign">0</property>
|
||||
<property name="label" translatable="yes">_Label:</property>
|
||||
<property name="use_markup">True</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="mnemonic_widget">label-entry</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="x_options"></property>
|
||||
</packing>
|
||||
</child>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="padding">6</property>
|
||||
<property name="position">2</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<widget class="GtkExpander" id="repeat-expand">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<child>
|
||||
<widget class="GtkAlignment" id="alignment1">
|
||||
<property name="visible">True</property>
|
||||
<property name="left_padding">24</property>
|
||||
<child>
|
||||
<widget class="GtkHBox" id="repeat-box">
|
||||
<property name="visible">True</property>
|
||||
<property name="spacing">2</property>
|
||||
<child>
|
||||
<widget class="GtkCheckButton" id="mon">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="label" translatable="yes">Mon</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="response_id">0</property>
|
||||
<property name="draw_indicator">True</property>
|
||||
</widget>
|
||||
</child>
|
||||
<child>
|
||||
<widget class="GtkCheckButton" id="tue">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="label" translatable="yes">Tue</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="response_id">0</property>
|
||||
<property name="draw_indicator">True</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<widget class="GtkCheckButton" id="wed">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="label" translatable="yes">Wed</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="response_id">0</property>
|
||||
<property name="draw_indicator">True</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="position">2</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<widget class="GtkCheckButton" id="thu">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="label" translatable="yes">Thu</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="response_id">0</property>
|
||||
<property name="draw_indicator">True</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="position">3</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<widget class="GtkCheckButton" id="fri">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="label" translatable="yes">Fri</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="response_id">0</property>
|
||||
<property name="draw_indicator">True</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="position">4</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<widget class="GtkCheckButton" id="sat">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="label" translatable="yes">Sat</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="response_id">0</property>
|
||||
<property name="draw_indicator">True</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="position">5</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<widget class="GtkCheckButton" id="sun">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="label" translatable="yes">Sun</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="response_id">0</property>
|
||||
<property name="draw_indicator">True</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="position">6</property>
|
||||
</packing>
|
||||
</child>
|
||||
</widget>
|
||||
</child>
|
||||
</widget>
|
||||
</child>
|
||||
<child>
|
||||
<widget class="GtkLabel" id="repeat-label">
|
||||
<property name="visible">True</property>
|
||||
<property name="label" translatable="yes"><b>T_rigger alarm:</b></property>
|
||||
<property name="use_markup">True</property>
|
||||
<property name="use_underline">True</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="type">label_item</property>
|
||||
</packing>
|
||||
</child>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="position">3</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<widget class="GtkHBox" id="snooze-box">
|
||||
<property name="visible">True</property>
|
||||
<property name="spacing">2</property>
|
||||
<child>
|
||||
<widget class="GtkCheckButton" id="snooze-check">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="label" translatable="yes">Snoo_ze for:</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="response_id">0</property>
|
||||
<property name="draw_indicator">True</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<widget class="GtkSpinButton" id="snooze-spin">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
||||
<property name="adjustment">0 0 99 1 10 0</property>
|
||||
<property name="climb_rate">1</property>
|
||||
<property name="numeric">True</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<widget class="GtkLabel" id="label5">
|
||||
<property name="visible">True</property>
|
||||
<property name="xalign">0</property>
|
||||
<property name="label" translatable="yes">minutes</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="position">2</property>
|
||||
</packing>
|
||||
</child>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="position">4</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<widget class="GtkLabel" id="notification-label2">
|
||||
<property name="visible">True</property>
|
||||
<property name="xalign">0</property>
|
||||
<property name="label" translatable="yes"><b>Notification</b></property>
|
||||
<property name="use_markup">True</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
<property name="position">5</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<widget class="GtkAlignment" id="notification-align2">
|
||||
<property name="visible">True</property>
|
||||
<property name="left_padding">12</property>
|
||||
<child>
|
||||
<widget class="GtkVBox" id="notification-box">
|
||||
<property name="visible">True</property>
|
||||
<property name="spacing">6</property>
|
||||
<child>
|
||||
<widget class="GtkRadioButton" id="sound-radio">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="label" translatable="yes">Play _sound</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="response_id">0</property>
|
||||
<property name="draw_indicator">True</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<widget class="GtkAlignment" id="play-sound-align2">
|
||||
<property name="visible">True</property>
|
||||
<property name="left_padding">12</property>
|
||||
<child>
|
||||
<widget class="GtkVBox" id="sound-box">
|
||||
<property name="visible">True</property>
|
||||
<child>
|
||||
<widget class="GtkHBox" id="play-sound-inner-box2">
|
||||
<property name="visible">True</property>
|
||||
<child>
|
||||
<widget class="GtkComboBox" id="sound-combo">
|
||||
<property name="visible">True</property>
|
||||
</widget>
|
||||
</child>
|
||||
<child>
|
||||
<widget class="GtkButton" id="sound-play">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="label">gtk-media-play</property>
|
||||
<property name="use_stock">True</property>
|
||||
<property name="response_id">0</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</widget>
|
||||
</child>
|
||||
<child>
|
||||
<widget class="GtkCheckButton" id="sound-loop-check">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="label" translatable="yes">Repea_t sound</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="response_id">0</property>
|
||||
<property name="draw_indicator">True</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</widget>
|
||||
</child>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<widget class="GtkRadioButton" id="app-radio">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="label" translatable="yes">Start _Application</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="response_id">0</property>
|
||||
<property name="draw_indicator">True</property>
|
||||
<property name="group">sound-radio</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
<property name="position">2</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<widget class="GtkAlignment" id="app-align">
|
||||
<property name="visible">True</property>
|
||||
<property name="left_padding">12</property>
|
||||
<child>
|
||||
<widget class="GtkVBox" id="app-box">
|
||||
<property name="visible">True</property>
|
||||
<property name="spacing">6</property>
|
||||
<child>
|
||||
<widget class="GtkComboBox" id="app-combo">
|
||||
<property name="visible">True</property>
|
||||
</widget>
|
||||
</child>
|
||||
<child>
|
||||
<widget class="GtkHBox" id="app-command-box">
|
||||
<property name="visible">True</property>
|
||||
<property name="spacing">12</property>
|
||||
<child>
|
||||
<widget class="GtkLabel" id="app-command-label2">
|
||||
<property name="visible">True</property>
|
||||
<property name="label" translatable="yes">Co_mmand:</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="mnemonic_widget">app-command-entry</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<widget class="GtkEntry" id="app-command-entry">
|
||||
<property name="visible">True</property>
|
||||
<property name="sensitive">False</property>
|
||||
<property name="can_focus">True</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</widget>
|
||||
</child>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
<property name="position">3</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<widget class="GtkCheckButton" id="notify-bubble-check">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="label" translatable="yes">Show _notification bubble</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="response_id">0</property>
|
||||
<property name="draw_indicator">True</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
<property name="position">4</property>
|
||||
</packing>
|
||||
</child>
|
||||
</widget>
|
||||
</child>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
<property name="position">6</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child internal-child="action_area">
|
||||
<widget class="GtkHButtonBox" id="dialog-action_area4">
|
||||
<property name="visible">True</property>
|
||||
<property name="layout_style">GTK_BUTTONBOX_END</property>
|
||||
<child>
|
||||
<widget class="GtkButton" id="close-button">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="label">gtk-close</property>
|
||||
<property name="use_stock">True</property>
|
||||
<property name="response_id">0</property>
|
||||
</widget>
|
||||
</child>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="pack_type">GTK_PACK_END</property>
|
||||
</packing>
|
||||
</child>
|
||||
</widget>
|
||||
</child>
|
||||
</widget>
|
||||
</glade-interface>
|
Reference in New Issue
Block a user