From 8786ca9366a76c6695a6cb4cb2bcfb32e913d950 Mon Sep 17 00:00:00 2001 From: Joe Zhao Date: Fri, 4 Sep 2015 08:40:52 -0600 Subject: Initial commit --- CMakeLists.txt | 15 +++++++++++++++ logging.cpp | 20 ++++++++++++++++++++ logging.h | 17 +++++++++++++++++ main.cpp | 16 ++++++++++++++++ totimer.cpp | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ totimer.h | 16 ++++++++++++++++ 6 files changed, 135 insertions(+) create mode 100644 CMakeLists.txt create mode 100644 logging.cpp create mode 100644 logging.h create mode 100644 main.cpp create mode 100644 totimer.cpp create mode 100644 totimer.h diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..fefeba2 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,15 @@ +cmake_minimum_required(VERSION 3.3) +project(pomodori) + +INCLUDE(FindPkgConfig) + +pkg_check_modules(GTKLIB REQUIRED "gtk+-2.0") +include_directories(${GTKLIB_INCLUDE_DIRS}) +link_directories(${GTKLIB_LIBRARY_DIRS}) + +set(CMAKE_CXX_FLAGS " -std=c++11 -lnotify") + +set(SOURCE_FILES main.cpp totimer.cpp totimer.h logging.cpp logging.h) +add_executable(pomodori ${SOURCE_FILES}) + +target_link_libraries(pomodori ${GTKLIB_LIBRARIES}) \ No newline at end of file diff --git a/logging.cpp b/logging.cpp new file mode 100644 index 0000000..d426978 --- /dev/null +++ b/logging.cpp @@ -0,0 +1,20 @@ +// +// Created by joe on 9/3/15. +// + +#include "logging.h" +#include "stdlib.h" +#include +#include + +using namespace std; +void log(tres* res,int code) +{ + if (code) + { + ofstream fot; + fot.open("~/.pomodori"); + fot<<1< + +typedef struct tres { + guint32 time; + const char* reason; +} tres; + +void log(tres* res,int code); + +#endif //POMODORI_LOGGING_H diff --git a/main.cpp b/main.cpp new file mode 100644 index 0000000..a997880 --- /dev/null +++ b/main.cpp @@ -0,0 +1,16 @@ +#include +#include +#include +#include "logging.h" +#include "totimer.h" + +int main(int argc, char** argv) +{ + gtk_init(&argc, &argv); + notify_init("Tomodori"); + tres lastres; + lastres.time=0; + settimer(&lastres,1); + gtk_main(); + return 0; +} \ No newline at end of file diff --git a/totimer.cpp b/totimer.cpp new file mode 100644 index 0000000..8bdbfe2 --- /dev/null +++ b/totimer.cpp @@ -0,0 +1,51 @@ +// +// Created by joe on 9/3/15. +// + +#include "totimer.h" +#include +#include + +void quit(NotifyNotification *note,gpointer user_data) +{ + tres* lastres = (tres*)user_data; + log(lastres,0); +} + +void timeup(NotifyNotification *note,const char *action,gpointer user_data){ + g_object_unref(G_OBJECT(note)); + tres* lastres = (tres*)user_data; + switch (action[0]){ + case 'M': + settimer(lastres, 5); + break; + case 'G': + log(lastres,1); + break; + case 'F': + default: + log(lastres,0); + break; + } +} + +bool notify(gpointer user_data) +{ + tres* lastres = (tres*)user_data; + NotifyNotification *n; + n = notify_notification_new ("Tomodori","Time's Up", NULL); + notify_notification_set_urgency(n,NOTIFY_URGENCY_CRITICAL); + notify_notification_add_action(n,"M", "More",(NotifyActionCallback)timeup,lastres,NULL); + notify_notification_add_action(n,"G", "Good",(NotifyActionCallback)timeup,lastres,NULL); + g_signal_connect (n, "closed", G_CALLBACK(quit), NULL); +// printf("1"); + notify_notification_set_timeout(n,0); //3 seconds + notify_notification_show(n,NULL); + return FALSE; +} + +int settimer(tres* lastres, guint32 wait) +{ + lastres->time = lastres->time + wait; + g_timeout_add(wait*60*1000,(GSourceFunc)notify,lastres); +} \ No newline at end of file diff --git a/totimer.h b/totimer.h new file mode 100644 index 0000000..19c51b9 --- /dev/null +++ b/totimer.h @@ -0,0 +1,16 @@ +// +// Created by joe on 9/3/15. +// + +#ifndef POMODORI_TOTIMER_H +#define POMODORI_TOTIMER_H + +#include +#include "logging.h" +#include "glib.h" + +bool notify(gpointer user_data); + +int settimer(tres* lastres,guint32 wait); + +#endif //POMODORI_TOTIMER_H -- cgit v1.2.3-70-g09d2