Esempio n. 1
0
        private static void listenToLibEvents()
        {
            toggl_on_show_app(ctx, delegate(bool open)
            {
                using (Performance.Measure("Calling OnApp"))
                {
                    OnApp(open);
                }
            });

            toggl_on_error(ctx, delegate(string errmsg, bool user_error)
            {
                using (Performance.Measure("Calling OnError, user_error: {1}, message: {0}", errmsg, user_error))
                {
                    OnError(errmsg, user_error);
                }
            });

            toggl_on_online_state(ctx, delegate(Int64 state)
            {
                using (Performance.Measure("Calling OnOnlineState, state: {0}", state))
                {
                    OnOnlineState(state);
                }
            });

            toggl_on_login(ctx, delegate(bool open, UInt64 user_id)
            {
                using (Performance.Measure("Calling OnLogin"))
                {
                    OnLogin(open, user_id);
                }
            });

            toggl_on_reminder(ctx, delegate(string title, string informative_text)
            {
                using (Performance.Measure("Calling OnReminder, title: {0}", title))
                {
                    OnReminder(title, informative_text);
                }
            });

            toggl_on_time_entry_list(ctx, delegate(bool open, IntPtr first)
            {
                using (Performance.Measure("Calling OnTimeEntryList"))
                {
                    var list = ConvertToTimeEntryList(first);
                    OnTimeEntryList(open, list);
                }
            });

            toggl_on_time_entry_autocomplete(ctx, delegate(IntPtr first)
            {
                using (Performance.Measure("Calling OnTimeEntryAutocomplete"))
                {
                    var list = ConvertToAutocompleteList(first);
                    OnTimeEntryAutocomplete(list);
                }
            });

            toggl_on_mini_timer_autocomplete(ctx, delegate(IntPtr first)
            {
                using (Performance.Measure("Calling OnMinitimerAutocomplete"))
                {
                    var list = ConvertToAutocompleteList(first);
                    OnMinitimerAutocomplete(list);
                }
            });

            toggl_on_project_autocomplete(ctx, delegate(IntPtr first)
            {
                using (Performance.Measure("Calling OnProjectAutocomplete"))
                {
                    var list = ConvertToAutocompleteList(first);
                    OnProjectAutocomplete(list);
                }
            });

            toggl_on_time_entry_editor(ctx, delegate(
                                           bool open,
                                           IntPtr te,
                                           string focused_field_name)
            {
                using (Performance.Measure("Calling OnTimeEntryEditor, focused field: {0}", focused_field_name))
                {
                    TogglTimeEntryView model = (TogglTimeEntryView)Marshal.PtrToStructure(
                        te, typeof(TogglTimeEntryView));
                    OnTimeEntryEditor(open, model, focused_field_name);
                }
            });

            toggl_on_workspace_select(ctx, delegate(IntPtr first)
            {
                using (Performance.Measure("Calling OnWorkspaceSelect"))
                {
                    var list = ConvertToViewItemList(first);
                    OnWorkspaceSelect(list);
                }
            });

            toggl_on_client_select(ctx, delegate(IntPtr first)
            {
                using (Performance.Measure("Calling OnClientSelect"))
                {
                    var list = ConvertToViewItemList(first);
                    OnClientSelect(list);
                }
            });

            toggl_on_tags(ctx, delegate(IntPtr first)
            {
                using (Performance.Measure("Calling OnTags"))
                {
                    var list = ConvertToViewItemList(first);
                    OnTags(list);
                }
            });

            toggl_on_settings(ctx, delegate(bool open, IntPtr settings)
            {
                using (Performance.Measure("Calling OnSettings"))
                {
                    TogglSettingsView model = (TogglSettingsView)Marshal.PtrToStructure(
                        settings, typeof(TogglSettingsView));
                    OnSettings(open, model);
                }
            });

            toggl_on_timer_state(ctx, delegate(IntPtr te)
            {
                if (te == IntPtr.Zero)
                {
                    using (Performance.Measure("Calling OnStoppedTimerState"))
                    {
                        OnStoppedTimerState();
                        return;
                    }
                }
                using (Performance.Measure("Calling OnRunningTimerState"))
                {
                    TogglTimeEntryView view =
                        (TogglTimeEntryView)Marshal.PtrToStructure(
                            te, typeof(TogglTimeEntryView));
                    OnRunningTimerState(view);
                }
            });

            toggl_on_url(ctx, delegate(string url)
            {
                using (Performance.Measure("Calling OnURL"))
                {
                    OnURL(url);
                }
            });

            toggl_on_idle_notification(ctx, delegate(
                                           string guid,
                                           string since,
                                           string duration,
                                           UInt64 started,
                                           string description)
            {
                using (Performance.Measure("Calling OnIdleNotification"))
                {
                    OnIdleNotification(guid, since, duration, started, description);
                }
            });
        }
Esempio n. 2
0
        public static bool SetSettings(TogglSettingsView settings)
        {
            if (!toggl_set_settings_use_idle_detection(ctx,
                                                       settings.UseIdleDetection))
            {
                return(false);
            }

            if (!toggl_set_settings_on_top(ctx,
                                           settings.OnTop))
            {
                return(false);
            }

            if (!toggl_set_settings_reminder(ctx,
                                             settings.Reminder))
            {
                return(false);
            }

            if (!toggl_set_settings_idle_minutes(ctx,
                                                 settings.IdleMinutes))
            {
                return(false);
            }

            if (!toggl_set_settings_reminder_minutes(ctx,
                                                     settings.ReminderMinutes))
            {
                return(false);
            }

            if (!toggl_set_settings_focus_on_shortcut(ctx,
                                                      settings.FocusOnShortcut))
            {
                return(false);
            }

            if (!toggl_set_settings_autodetect_proxy(ctx,
                                                     settings.AutodetectProxy))
            {
                return(false);
            }

            if (!toggl_set_proxy_settings(
                    ctx,
                    settings.UseProxy,
                    settings.ProxyHost,
                    settings.ProxyPort,
                    settings.ProxyUsername,
                    settings.ProxyPassword))
            {
                return(false);
            }
            if (!toggl_set_settings_remind_days(
                    ctx,
                    settings.RemindMon,
                    settings.RemindTue,
                    settings.RemindWed,
                    settings.RemindThu,
                    settings.RemindFri,
                    settings.RemindSat,
                    settings.RemindSun
                    ))
            {
                return(false);
            }
            if (!toggl_set_settings_remind_times(
                    ctx,
                    settings.RemindStarts,
                    settings.RemindEnds
                    ))
            {
                return(false);
            }

            if (!toggl_set_settings_autotrack(ctx, settings.Autotrack))
            {
                return(false);
            }

            if (!toggl_set_settings_pomodoro(ctx, settings.Pomodoro))
            {
                return(false);
            }

            if (!toggl_set_settings_pomodoro_minutes(ctx, settings.PomodoroMinutes))
            {
                return(false);
            }

            if (!toggl_set_settings_pomodoro_break(ctx, settings.PomodoroBreak))
            {
                return(false);
            }

            if (!toggl_set_settings_pomodoro_break_minutes(ctx, settings.PomodoroBreakMinutes))
            {
                return(false);
            }

            if (!toggl_set_settings_stop_entry_on_shutdown_sleep(ctx, settings.StopEntryOnShutdownSleep))
            {
                return(false);
            }

            return(toggl_timeline_toggle_recording(ctx, settings.RecordTimeline));
        }
Esempio n. 3
0
    public static bool SetSettings(TogglSettingsView settings)
    {
        if (!toggl_set_settings_use_idle_detection(ctx,
                settings.UseIdleDetection)) {
            return false;
        }

        if (!toggl_set_settings_on_top(ctx,
                                       settings.OnTop)) {
            return false;
        }

        if (!toggl_set_settings_reminder(ctx,
                                         settings.Reminder)) {
            return false;
        }

        if (!toggl_set_settings_idle_minutes(ctx,
                                             settings.IdleMinutes)) {
            return false;
        }

        if (!toggl_set_settings_reminder_minutes(ctx,
                settings.ReminderMinutes)) {
            return false;
        }

        if (!toggl_set_settings_focus_on_shortcut(ctx,
                settings.FocusOnShortcut)) {
            return false;
        }

        if (!toggl_set_settings_autodetect_proxy(ctx,
                settings.AutodetectProxy))
        {
            return false;
        }

        if (!toggl_set_proxy_settings(
            ctx,
            settings.UseProxy,
            settings.ProxyHost,
            settings.ProxyPort,
            settings.ProxyUsername,
            settings.ProxyPassword))
        {
            return false;
        }
        if (!toggl_set_settings_remind_days(
            ctx,
            settings.RemindMon,
            settings.RemindTue,
            settings.RemindWed,
            settings.RemindThu,
            settings.RemindFri,
            settings.RemindSat,
            settings.RemindSun
                ))
        {
            return false;
        }
        if (!toggl_set_settings_remind_times(
            ctx,
            settings.RemindStarts,
            settings.RemindEnds
                ))
        {
            return false;
        }


        return toggl_timeline_toggle_recording(ctx, settings.RecordTimeline);
    }