quac.h 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. #pragma once
  2. #include <gui/gui.h>
  3. #include <gui/scene_manager.h>
  4. #include <gui/view_dispatcher.h>
  5. #include <gui/scene_manager.h>
  6. #include <gui/modules/variable_item_list.h>
  7. #include <gui/modules/submenu.h>
  8. #include <gui/modules/text_input.h>
  9. #include <dialogs/dialogs.h>
  10. #include <storage/storage.h>
  11. #include <notification/notification_messages.h>
  12. #include "views/action_menu.h"
  13. #include "item.h"
  14. // #pragma GCC push_options
  15. // #pragma GCC optimize("O0")
  16. #define QUAC_NAME "Quac!"
  17. #define TAG "Quac" // log statement id
  18. // Location of our actions and folders
  19. #define QUAC_PATH "apps_data/quac"
  20. // Full path to actions
  21. #define QUAC_DATA_PATH EXT_PATH(QUAC_PATH)
  22. typedef enum { QUAC_APP_PORTRAIT, QUAC_APP_LANDSCAPE } QuacAppLayout;
  23. typedef struct App {
  24. SceneManager* scene_manager;
  25. ViewDispatcher* view_dispatcher;
  26. ActionMenu* action_menu;
  27. VariableItemList* vil_settings;
  28. DialogsApp* dialog;
  29. Submenu* sub_menu;
  30. TextInput* text_input;
  31. Storage* storage;
  32. NotificationApp* notifications;
  33. ItemsView* items_view;
  34. int depth;
  35. int selected_item;
  36. FuriString* temp_str; // used for renames/etc
  37. char temp_cstr[MAX_NAME_LEN]; // used for renames/etc
  38. struct {
  39. QuacAppLayout layout; // Defaults to Portrait
  40. bool show_icons; // Defaults to True
  41. bool show_headers; // Defaults to True
  42. uint32_t rfid_duration; // Defaults to 2500 ms
  43. bool subghz_use_ext_antenna; // Defaults to False
  44. } settings;
  45. } App;
  46. App* app_alloc();
  47. void app_free(App* app);