mirror of
https://github.com/ISpillMyDrink/OpenSuperClone.git
synced 2026-08-26 04:56:49 +00:00
Get completely rid of all GTK2 code.
This commit is contained in:
@@ -32,9 +32,6 @@ set(OSCVIEWER_LANG_PATH "${CMAKE_INSTALL_PREFIX}/share/doc/oscviewer/Language" C
|
||||
# Copyright year 2022
|
||||
set(COPYRIGHT_YEAR 2022 CACHE STRING "Copyright Year")
|
||||
|
||||
# Set the GTK version to 3.x
|
||||
set(GTKVER 3 CACHE STRING "GTK Version")
|
||||
|
||||
# If Git is installed, save the current revision number
|
||||
find_package(Git)
|
||||
|
||||
|
||||
@@ -41,13 +41,8 @@
|
||||
* Refactoring of codebase (get rid of -fcommon flag)
|
||||
* Implement DKMS for driver (un-)installation
|
||||
* Remove requirement for running as root
|
||||
* Get completely rid of GTK2 code
|
||||
* Add configuration files and presets for settings
|
||||
|
||||
#### 💣 Known Issues
|
||||
|
||||
* OSCViewer is extremely buggy in GTK3, it is recommended to build it with GTK2 for the time being
|
||||
|
||||
## 💾 Installation
|
||||
|
||||
Pre-built binaries aswell as Debian packages for OpenSuperClone can be found on the <a href=https://github.com/ISpillMyDrink/OpenSuperClone/releases>Release</a> page. The current pre-release is OpenSuperClone 2.4 RC2 and may be unstable, use at your own risk.
|
||||
@@ -60,7 +55,7 @@ Pre-built binaries aswell as Debian packages for OpenSuperClone can be found on
|
||||
- `cmake`
|
||||
- `pkgconf`
|
||||
- `libusb-dev`
|
||||
- `libgtk-3-dev` (or `libgtk2.0-dev` if building for GTK2)
|
||||
- `libgtk-3-dev`
|
||||
|
||||
```Bash
|
||||
# Build OpenSuperClone and OSCViewer for Release and install to ./Release
|
||||
|
||||
+1
-5
@@ -1,11 +1,7 @@
|
||||
find_package(PkgConfig REQUIRED)
|
||||
|
||||
# Find GTK dependency
|
||||
if(GTKVER EQUAL 2)
|
||||
pkg_check_modules(GTK2 REQUIRED gtk+-2.0)
|
||||
elseif(GTKVER EQUAL 3)
|
||||
pkg_check_modules(GTK3 REQUIRED gtk+-3.0)
|
||||
endif()
|
||||
pkg_check_modules(GTK3 REQUIRED gtk+-3.0)
|
||||
|
||||
# Find LibUSB dependency
|
||||
pkg_check_modules(LIBUSB REQUIRED libusb)
|
||||
|
||||
@@ -11,8 +11,8 @@ set(SOURCES
|
||||
usbrelay.h
|
||||
common.c
|
||||
common.h
|
||||
clone_gui${GTKVER}.c
|
||||
clone_gui${GTKVER}.h
|
||||
clone_gui.c
|
||||
clone_gui.h
|
||||
clone_gui_language.c
|
||||
clone_gui_language.h
|
||||
)
|
||||
@@ -33,11 +33,11 @@ add_custom_command(
|
||||
LIST(APPEND RESOURCES opensuperclone_help.h)
|
||||
|
||||
add_custom_command(
|
||||
OUTPUT opensuperclone${GTKVER}_glade.h
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/opensuperclone${GTKVER}.glade opensuperclone${GTKVER}.glade
|
||||
COMMAND xxd -i opensuperclone${GTKVER}.glade opensuperclone${GTKVER}_glade.h
|
||||
OUTPUT opensuperclone_glade.h
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/opensuperclone.glade opensuperclone.glade
|
||||
COMMAND xxd -i opensuperclone.glade opensuperclone_glade.h
|
||||
)
|
||||
LIST(APPEND RESOURCES opensuperclone${GTKVER}_glade.h)
|
||||
LIST(APPEND RESOURCES opensuperclone_glade.h)
|
||||
|
||||
add_custom_command(
|
||||
OUTPUT opensupertool_help.h
|
||||
@@ -63,17 +63,10 @@ add_executable(opensuperclone ${SOURCES} ${RESOURCES})
|
||||
target_include_directories(opensuperclone PRIVATE ${CMAKE_CURRENT_BINARY_DIR})
|
||||
|
||||
# Add GTK dependency
|
||||
if(GTKVER EQUAL 2)
|
||||
target_include_directories(opensuperclone PRIVATE ${GTK2_INCLUDE_DIRS})
|
||||
target_link_directories(opensuperclone PRIVATE ${GTK2_LIBRARY_DIRS})
|
||||
target_compile_options(opensuperclone PRIVATE ${GTK2_CFLAGS_OTHER})
|
||||
target_link_libraries(opensuperclone ${GTK2_LIBRARIES})
|
||||
elseif(GTKVER EQUAL 3)
|
||||
target_include_directories(opensuperclone PRIVATE ${GTK3_INCLUDE_DIRS})
|
||||
target_link_directories(opensuperclone PRIVATE ${GTK3_LIBRARY_DIRS})
|
||||
target_compile_options(opensuperclone PRIVATE ${GTK3_CFLAGS_OTHER})
|
||||
target_link_libraries(opensuperclone ${GTK3_LIBRARIES})
|
||||
endif()
|
||||
target_include_directories(opensuperclone PRIVATE ${GTK3_INCLUDE_DIRS})
|
||||
target_link_directories(opensuperclone PRIVATE ${GTK3_LIBRARY_DIRS})
|
||||
target_compile_options(opensuperclone PRIVATE ${GTK3_CFLAGS_OTHER})
|
||||
target_link_libraries(opensuperclone ${GTK3_LIBRARIES})
|
||||
|
||||
# Add LibUSB dependency
|
||||
target_link_libraries(opensuperclone ${LIBUSB_LIBRARIES})
|
||||
|
||||
@@ -5,9 +5,9 @@
|
||||
|
||||
#include "config.h"
|
||||
#include "clone_gui_common.h"
|
||||
#include "clone_gui3.h"
|
||||
#include "clone_gui.h"
|
||||
#include "common.h"
|
||||
#include "opensuperclone3_glade.h"
|
||||
#include "opensuperclone_glade.h"
|
||||
|
||||
int start_gtk_ccc(int argc, char **argv, char *title, char *version)
|
||||
{
|
||||
@@ -67,7 +67,7 @@ int start_gtk_ccc(int argc, char **argv, char *title, char *version)
|
||||
|
||||
GtkBuilder *builder = gtk_builder_new();
|
||||
GError *err = NULL; // It is mandatory to initialize to NULL
|
||||
if (0 == gtk_builder_add_from_string(builder, (const gchar *)opensuperclone3_glade, opensuperclone3_glade_len, &err))
|
||||
if (0 == gtk_builder_add_from_string(builder, (const gchar *)opensuperclone_glade, opensuperclone_glade_len, &err))
|
||||
{
|
||||
fprintf(stderr, "Error adding build from file. Error: %s\n", err->message);
|
||||
}
|
||||
@@ -3352,7 +3352,7 @@ void display_analyze_results_ccc(void)
|
||||
{
|
||||
GtkBuilder *builder = gtk_builder_new();
|
||||
GError *err = NULL; // It is mandatory to initialize to NULL
|
||||
if (0 == gtk_builder_add_from_string(builder, (const gchar *)opensuperclone3_glade, opensuperclone3_glade_len, &err))
|
||||
if (0 == gtk_builder_add_from_string(builder, (const gchar *)opensuperclone_glade, opensuperclone_glade_len, &err))
|
||||
{
|
||||
fprintf(stderr, "Error adding build from file. Error: %s\n", err->message);
|
||||
}
|
||||
@@ -3390,7 +3390,7 @@ void display_smart_data_ccc(void)
|
||||
{
|
||||
GtkBuilder *builder = gtk_builder_new();
|
||||
GError *err = NULL; // It is mandatory to initialize to NULL
|
||||
if (0 == gtk_builder_add_from_string(builder, (const gchar *)opensuperclone3_glade, opensuperclone3_glade_len, &err))
|
||||
if (0 == gtk_builder_add_from_string(builder, (const gchar *)opensuperclone_glade, opensuperclone_glade_len, &err))
|
||||
{
|
||||
fprintf(stderr, "Error adding build from file. Error: %s\n", err->message);
|
||||
}
|
||||
@@ -3415,7 +3415,7 @@ void display_identify_data_ccc(void)
|
||||
{
|
||||
GtkBuilder *builder = gtk_builder_new();
|
||||
GError *err = NULL; // It is mandatory to initialize to NULL
|
||||
if (0 == gtk_builder_add_from_string(builder, (const gchar *)opensuperclone3_glade, opensuperclone3_glade_len, &err))
|
||||
if (0 == gtk_builder_add_from_string(builder, (const gchar *)opensuperclone_glade, opensuperclone_glade_len, &err))
|
||||
{
|
||||
fprintf(stderr, "Error adding build from file. Error: %s\n", err->message);
|
||||
}
|
||||
@@ -3446,7 +3446,7 @@ void open_clone_settings_dialog_ccc(void)
|
||||
{
|
||||
GtkBuilder *builder = gtk_builder_new();
|
||||
GError *err = NULL; // It is mandatory to initialize to NULL
|
||||
if (0 == gtk_builder_add_from_string(builder, (const gchar *)opensuperclone3_glade, opensuperclone3_glade_len, &err))
|
||||
if (0 == gtk_builder_add_from_string(builder, (const gchar *)opensuperclone_glade, opensuperclone_glade_len, &err))
|
||||
{
|
||||
fprintf(stderr, "Error adding build from file. Error: %s\n", err->message);
|
||||
}
|
||||
@@ -3579,7 +3579,7 @@ void open_advanced_settings_dialog_ccc(void)
|
||||
{
|
||||
GtkBuilder *builder = gtk_builder_new();
|
||||
GError *err = NULL; // It is mandatory to initialize to NULL
|
||||
if (0 == gtk_builder_add_from_string(builder, (const gchar *)opensuperclone3_glade, opensuperclone3_glade_len, &err))
|
||||
if (0 == gtk_builder_add_from_string(builder, (const gchar *)opensuperclone_glade, opensuperclone_glade_len, &err))
|
||||
{
|
||||
fprintf(stderr, "Error adding build from file. Error: %s\n", err->message);
|
||||
}
|
||||
@@ -3752,7 +3752,7 @@ void open_timer_settings_dialog_ccc(void)
|
||||
{
|
||||
GtkBuilder *builder = gtk_builder_new();
|
||||
GError *err = NULL; // It is mandatory to initialize to NULL
|
||||
if (0 == gtk_builder_add_from_string(builder, (const gchar *)opensuperclone3_glade, opensuperclone3_glade_len, &err))
|
||||
if (0 == gtk_builder_add_from_string(builder, (const gchar *)opensuperclone_glade, opensuperclone_glade_len, &err))
|
||||
{
|
||||
fprintf(stderr, "Error adding build from file. Error: %s\n", err->message);
|
||||
}
|
||||
@@ -3922,7 +3922,7 @@ int open_ports_dialog_ccc(char *current_ports)
|
||||
int confirm = 0;
|
||||
GtkBuilder *builder = gtk_builder_new();
|
||||
GError *err = NULL; // It is mandatory to initialize to NULL
|
||||
if (0 == gtk_builder_add_from_string(builder, (const gchar *)opensuperclone3_glade, opensuperclone3_glade_len, &err))
|
||||
if (0 == gtk_builder_add_from_string(builder, (const gchar *)opensuperclone_glade, opensuperclone_glade_len, &err))
|
||||
{
|
||||
fprintf(stderr, "Error adding build from file. Error: %s\n", err->message);
|
||||
}
|
||||
@@ -3974,7 +3974,7 @@ int set_lun_dialog_ccc(int max_lun)
|
||||
{
|
||||
GtkBuilder *builder = gtk_builder_new();
|
||||
GError *err = NULL; // It is mandatory to initialize to NULL
|
||||
if (0 == gtk_builder_add_from_string(builder, (const gchar *)opensuperclone3_glade, opensuperclone3_glade_len, &err))
|
||||
if (0 == gtk_builder_add_from_string(builder, (const gchar *)opensuperclone_glade, opensuperclone_glade_len, &err))
|
||||
{
|
||||
fprintf(stderr, "Error adding build from file. Error: %s\n", err->message);
|
||||
}
|
||||
@@ -4023,7 +4023,7 @@ void open_primary_relay_dialog_ccc(void)
|
||||
{
|
||||
GtkBuilder *builder = gtk_builder_new();
|
||||
GError *err = NULL; // It is mandatory to initialize to NULL
|
||||
if (0 == gtk_builder_add_from_string(builder, (const gchar *)opensuperclone3_glade, opensuperclone3_glade_len, &err))
|
||||
if (0 == gtk_builder_add_from_string(builder, (const gchar *)opensuperclone_glade, opensuperclone_glade_len, &err))
|
||||
{
|
||||
fprintf(stderr, "Error adding build from file. Error: %s\n", err->message);
|
||||
}
|
||||
@@ -4335,7 +4335,7 @@ int open_confirmation_dialog_ccc(char *message)
|
||||
int confirm = 0;
|
||||
GtkBuilder *builder = gtk_builder_new();
|
||||
GError *err = NULL; // It is mandatory to initialize to NULL
|
||||
if (0 == gtk_builder_add_from_string(builder, (const gchar *)opensuperclone3_glade, opensuperclone3_glade_len, &err))
|
||||
if (0 == gtk_builder_add_from_string(builder, (const gchar *)opensuperclone_glade, opensuperclone_glade_len, &err))
|
||||
{
|
||||
fprintf(stderr, "Error adding build from file. Error: %s\n", err->message);
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,689 +0,0 @@
|
||||
// Copyright (C) Scott Dwyer and OpenSuperClone contributors.
|
||||
// You may use/distribute/modify this freely, under the terms of
|
||||
// the GNU General Public License version 2 or later version.
|
||||
// This software is distributed WITHOUT ANY WARRANTY.
|
||||
|
||||
#include <gtk/gtk.h>
|
||||
#ifdef DEBUG
|
||||
#include <curl/curl.h>
|
||||
#endif
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include "opensuperclone_EULA.h"
|
||||
|
||||
#define TRANSLATETIMERALL 1000000000 // nanosecond delay for every translate call
|
||||
#define TRANSLATETIMERFAST 10000000000 // nanosecond delay for each normal translate call
|
||||
#define TRANSLATETIMERSLOW 2000000000 // nanosecond delay for each slow translate call
|
||||
|
||||
#define GTKCOLOR_BLACK "#000000" // (0,0,0)
|
||||
#define GTKCOLOR_WHITE "#FFFFFF" // (255,255,255)
|
||||
#define GTKCOLOR_RED "#FF0000" // (255,0,0)
|
||||
#define GTKCOLOR_LIME "#00FF00" // (0,255,0)
|
||||
#define GTKCOLOR_BLUE "#0000FF" // (0,0,255)
|
||||
#define GTKCOLOR_YELLOW "#FFFF00" // (255,255,0)
|
||||
#define GTKCOLOR_CYAN "#00FFFF" // (0,255,255)
|
||||
#define GTKCOLOR_MAGENTA "#FF00FF" // (255,0,255)
|
||||
#define GTKCOLOR_SILVER "#C0C0C0" // (192,192,192)
|
||||
#define GTKCOLOR_LIGHTGRAY "#D3D3D3" // (211, 211, 211)
|
||||
#define GTKCOLOR_DARKGREY "#A9A9A9" // (169, 169, 169)
|
||||
#define GTKCOLOR_GRAY "#808080" // (128,128,128)
|
||||
#define GTKCOLOR_MAROON "#800000" // (128,0,0)
|
||||
#define GTKCOLOR_OLIVE "#808000" // (128,128,0)
|
||||
#define GTKCOLOR_GREEN "#008000" // (0,128,0)
|
||||
#define GTKCOLOR_PURPLE "#800080" // (128,0,128)
|
||||
#define GTKCOLOR_TEAL "#008080" // (0,128,128)
|
||||
#define GTKCOLOR_NAVY "#000080" // (0,0,128)
|
||||
|
||||
#define MAX_BUTTON_LABEL_SIZE 256
|
||||
|
||||
#define BUTTONID_PHASE1 1
|
||||
#define BUTTONID_PHASE2 2
|
||||
#define BUTTONID_PHASE3 3
|
||||
#define BUTTONID_PHASE4 4
|
||||
#define BUTTONID_DIVIDE 5
|
||||
#define BUTTONID_DIVIDE2 6
|
||||
#define BUTTONID_TRIM 7
|
||||
#define BUTTONID_SCRAPE 8
|
||||
#define BUTTONID_MARKBAD 9
|
||||
#define BUTTONID_READBAD 10
|
||||
#define BUTTONID_REVERSE 11
|
||||
#define BUTTONID_SKIPFAST 12
|
||||
#define BUTTONID_NOLOGBACK 13
|
||||
#define BUTTONID_FORCE 14
|
||||
#define BUTTONID_OFFSET 15
|
||||
#define BUTTONID_FORCEDANGEROUS 16
|
||||
#define BUTTONID_PIOMODE 17
|
||||
#define BUTTONID_PHASETIMERS 18
|
||||
#define BUTTONID_ENABLEPROCESSCHUNK 19
|
||||
#define BUTTONID_ENABLEPHASELOGS 20
|
||||
#define BUTTONID_ENABLESCSIWRITE 21
|
||||
#define BUTTONID_ENABLEOUTPUTSECTOR 22
|
||||
#define BUTTONID_USEPHYSICALSECTORSIZE 23
|
||||
#define BUTTONID_COLORSTATUSBAR 24
|
||||
#define BUTTONID_ENABLEREADTWICE 25
|
||||
#define BUTTONID_POSITION 26
|
||||
#define BUTTONID_IOSCSIONLY 27
|
||||
#define BUTTONID_ENABLEREBUILDASSIST 28
|
||||
#define BUTTONID_REBUILDASSIST 29
|
||||
#define BUTTONID_ENABLERETRYCONNECTING 30
|
||||
#define BUTTONID_DONTIDENTIFY 31
|
||||
|
||||
GtkWidget *language_window_ccc;
|
||||
GtkWidget *main_label;
|
||||
GtkWidget *main_frame;
|
||||
GtkWidget *bottom_status_bar_ccc;
|
||||
|
||||
GtkWidget *main_window_ccc;
|
||||
GtkWidget *main_vbox_ccc;
|
||||
GtkWidget *main_hbox_ccc;
|
||||
|
||||
GtkWidget *button_bbk_ccc;
|
||||
GtkWidget *button_unc_ccc;
|
||||
GtkWidget *button_mc_ccc;
|
||||
GtkWidget *button_idnf_ccc;
|
||||
GtkWidget *button_mcr_ccc;
|
||||
GtkWidget *button_abrt_ccc;
|
||||
GtkWidget *button_tk0nf_ccc;
|
||||
GtkWidget *button_amnf_ccc;
|
||||
GtkWidget *button_bsy_ccc;
|
||||
GtkWidget *button_drdy_ccc;
|
||||
GtkWidget *button_df_ccc;
|
||||
GtkWidget *button_dsc_ccc;
|
||||
GtkWidget *button_drq_ccc;
|
||||
GtkWidget *button_corr_ccc;
|
||||
GtkWidget *button_idx_ccc;
|
||||
GtkWidget *button_err_ccc;
|
||||
GtkWidget *button_status_separator_ccc;
|
||||
|
||||
GdkColor button_color_ccc;
|
||||
|
||||
// file menu
|
||||
GtkWidget *topmenubar_ccc;
|
||||
GtkWidget *filemenu_ccc;
|
||||
GtkWidget *filemi_ccc;
|
||||
GtkWidget *quitmi_ccc;
|
||||
GtkWidget *openmi_ccc;
|
||||
GtkWidget *newmi_ccc;
|
||||
GtkWidget *sourcemi_ccc;
|
||||
GtkWidget *destinationmi_ccc;
|
||||
GtkWidget *drivesmi_ccc;
|
||||
GtkWidget *blockmi_ccc;
|
||||
GtkWidget *drivemi_ccc;
|
||||
GtkWidget *imagemi_ccc;
|
||||
GtkWidget *devnullmi_ccc;
|
||||
GtkWidget *filew_ccc;
|
||||
GtkWidget *modemi_ccc;
|
||||
GtkWidget *copyimagemi_ccc;
|
||||
GtkWidget *genericmi_ccc;
|
||||
GtkWidget *pass_automi_ccc;
|
||||
GtkWidget *pass_scsimi_ccc;
|
||||
GtkWidget *pass_atrami_ccc;
|
||||
GtkWidget *directmi_ccc;
|
||||
GtkWidget *ahcimi_ccc;
|
||||
GtkWidget *usbmi_ccc;
|
||||
GtkWidget *usbatami_ccc;
|
||||
GtkWidget *settingsmi_ccc;
|
||||
GtkWidget *advancedmi_ccc;
|
||||
GtkWidget *clonemi_ccc;
|
||||
GtkWidget *savemi_ccc;
|
||||
GtkWidget *saveasmi_ccc;
|
||||
GtkWidget *resetstatusmi_ccc;
|
||||
GtkWidget *toolsmi_ccc;
|
||||
GtkWidget *resetlogmi_ccc;
|
||||
GtkWidget *repairlogmi_ccc;
|
||||
GtkWidget *fillzeromi_ccc;
|
||||
GtkWidget *fillmarkmi_ccc;
|
||||
GtkWidget *fillerasemi_ccc;
|
||||
GtkWidget *domainmi_ccc;
|
||||
GtkWidget *importddmi_ccc;
|
||||
GtkWidget *exportddmi_ccc;
|
||||
GtkWidget *cleardomainmi_ccc;
|
||||
GtkWidget *helpmi_ccc;
|
||||
GtkWidget *aboutmi_ccc;
|
||||
GtkWidget *timermi_ccc;
|
||||
GtkWidget *installdrivermi_ccc;
|
||||
GtkWidget *uninstalldrivermi_ccc;
|
||||
GtkWidget *fixdrivermemorymi_ccc;
|
||||
GtkWidget *driveronlymi_ccc;
|
||||
GtkWidget *adddomainmi_ccc;
|
||||
GtkWidget *newdomainmi_ccc;
|
||||
GtkWidget *savedomainmi_ccc;
|
||||
GtkWidget *savedomainasmi_ccc;
|
||||
GtkWidget *activatewithfilemi_ccc;
|
||||
GtkWidget *removeactivationmi_ccc;
|
||||
GtkWidget *disableportsmi_ccc;
|
||||
GtkWidget *restoreportsmi_ccc;
|
||||
GtkWidget *displayidentifymi_ccc;
|
||||
GtkWidget *displayanalyzemi_ccc;
|
||||
GtkWidget *displaysmartmi_ccc;
|
||||
GtkWidget *primaryrelaymi_ccc;
|
||||
GtkWidget *chooseprimaryrelaymi_ccc;
|
||||
GtkWidget *disableusbmassmi_ccc;
|
||||
GtkWidget *restoreusbmassmi_ccc;
|
||||
|
||||
GtkWidget *choose_source_dialog_window_ccc;
|
||||
GtkWidget *choose_source_scrolled_window_ccc;
|
||||
GtkWidget *choose_source_vbox_ccc;
|
||||
|
||||
GtkWidget *choose_destination_dialog_window_ccc;
|
||||
GtkWidget *choose_destination_scrolled_window_ccc;
|
||||
GtkWidget *choose_destination_vbox_ccc;
|
||||
|
||||
GtkWidget *choose_usb_dialog_window_ccc;
|
||||
GtkWidget *choose_usb_scrolled_window_ccc;
|
||||
GtkWidget *choose_usb_vbox_ccc;
|
||||
|
||||
GtkWidget *connect_button_ccc;
|
||||
GtkWidget *disconnect_button_ccc;
|
||||
GtkWidget *start_button_ccc;
|
||||
GtkWidget *stop_button_ccc;
|
||||
GtkWidget *analyze_button_ccc;
|
||||
GtkWidget *analyze_long_button_ccc;
|
||||
GtkWidget *smart_button_ccc;
|
||||
GtkWidget *clone_mode_button_ccc;
|
||||
GtkWidget *agressive_driver_checkbutton_ccc;
|
||||
GtkWidget *driver_mode1_button_ccc;
|
||||
GtkWidget *driver_mode2_button_ccc;
|
||||
GtkWidget *driver_mode3_button_ccc;
|
||||
GtkWidget *driver_mode4_button_ccc;
|
||||
GtkWidget *driver_mode5_button_ccc;
|
||||
GtkWidget *soft_reset_button_ccc;
|
||||
GtkWidget *hard_reset_button_ccc;
|
||||
|
||||
GtkWidget *phase_control_label_ccc;
|
||||
GtkWidget *phase1_check_button_ccc;
|
||||
GtkWidget *phase2_check_button_ccc;
|
||||
GtkWidget *phase3_check_button_ccc;
|
||||
GtkWidget *phase4_check_button_ccc;
|
||||
GtkWidget *divide_check_button_ccc;
|
||||
GtkWidget *divide2_check_button_ccc;
|
||||
GtkWidget *trim_check_button_ccc;
|
||||
GtkWidget *scrape_check_button_ccc;
|
||||
GtkWidget *markbad_check_button_ccc;
|
||||
GtkWidget *readbad_check_button_ccc;
|
||||
GtkWidget *rebuild_assist_check_button_ccc;
|
||||
GtkWidget *reverse_check_button_ccc;
|
||||
GtkWidget *skipfast_check_button_ccc;
|
||||
GtkWidget *retries_button_label_ccc;
|
||||
GtkWidget *retries_spin_button_ccc;
|
||||
GtkWidget *clustersize_button_label_ccc;
|
||||
GtkWidget *clustersize_spin_button_ccc;
|
||||
GtkWidget *inputoffset_button_label_ccc;
|
||||
GtkWidget *inputoffset_spin_button_ccc;
|
||||
GtkWidget *size_button_label_ccc;
|
||||
GtkWidget *size_spin_button_ccc;
|
||||
GtkWidget *blocksize_button_label_ccc;
|
||||
GtkWidget *blocksize_spin_button_ccc;
|
||||
GtkWidget *skipsize_button_label_ccc;
|
||||
GtkWidget *skipsize_spin_button_ccc;
|
||||
GtkWidget *maxskipsize_button_label_ccc;
|
||||
GtkWidget *maxskipsize_spin_button_ccc;
|
||||
GtkWidget *skipthreshold_button_label_ccc;
|
||||
GtkWidget *skipthreshold_spin_button_ccc;
|
||||
GtkWidget *rateskip_button_label_ccc;
|
||||
GtkWidget *rateskip_spin_button_ccc;
|
||||
GtkWidget *exitonslow_button_label_ccc;
|
||||
GtkWidget *exitonslow_spin_button_ccc;
|
||||
GtkWidget *exitonslowtime_button_label_ccc;
|
||||
GtkWidget *exitonslowtime_spin_button_ccc;
|
||||
GtkWidget *no_log_backup_checkbutton_ccc;
|
||||
GtkWidget *force_mounted_checkbutton_ccc;
|
||||
GtkWidget *force_dangerous_checkbutton_ccc;
|
||||
GtkWidget *enable_output_offset_checkbutton_ccc;
|
||||
GtkWidget *output_offset_spinbutton_ccc;
|
||||
GtkWidget *output_offset_button_label_ccc;
|
||||
GtkWidget *enable_current_position_checkbutton_ccc;
|
||||
GtkWidget *current_position_spinbutton_ccc;
|
||||
GtkWidget *current_position_button_label_ccc;
|
||||
GtkWidget *action_on_error_label_ccc;
|
||||
GtkWidget *stop_on_error_radio_button_ccc;
|
||||
GtkWidget *call_command_radio_button_ccc;
|
||||
GtkWidget *command_to_call_text_ccc;
|
||||
GtkWidget *test_command_button_ccc;
|
||||
GtkWidget *primary_relay_on_error_radio_button_ccc;
|
||||
GtkWidget *write_buffer_disable_radio_button_ccc;
|
||||
GtkWidget *write_buffer_enable_radio_button_ccc;
|
||||
GtkWidget *write_buffer_label_ccc;
|
||||
GtkWidget *timer_settings_label_ccc;
|
||||
GtkWidget *timer_settings_info_label_ccc;
|
||||
GtkWidget *initial_busy_wait_time_button_label_ccc;
|
||||
GtkWidget *initial_busy_wait_time_spinbutton_ccc;
|
||||
GtkWidget *busy_wait_time_button_label_ccc;
|
||||
GtkWidget *busy_wait_time_spinbutton_ccc;
|
||||
GtkWidget *soft_reset_time_button_label_ccc;
|
||||
GtkWidget *soft_reset_time_spinbutton_ccc;
|
||||
GtkWidget *hard_reset_time_button_label_ccc;
|
||||
GtkWidget *hard_reset_time_spinbutton_ccc;
|
||||
GtkWidget *power_cycle_time_button_label_ccc;
|
||||
GtkWidget *power_cycle_time_spinbutton_ccc;
|
||||
GtkWidget *general_timout_button_label_ccc;
|
||||
GtkWidget *general_timeout_spinbutton_ccc;
|
||||
GtkWidget *action_power_cycle_label_ccc;
|
||||
GtkWidget *stop_on_power_cycle_radio_button_ccc;
|
||||
GtkWidget *call_power_command_radio_button_ccc;
|
||||
GtkWidget *power_command_to_call_text_ccc;
|
||||
GtkWidget *primary_relay_power_cycle_radio_button_ccc;
|
||||
GtkWidget *test_power_command_button_ccc;
|
||||
GtkWidget *pio_mode_checkbutton_ccc;
|
||||
GtkWidget *phase_timers_label_ccc;
|
||||
GtkWidget *phase_timers_checkbutton_ccc;
|
||||
GtkWidget *p12_soft_reset_time_button_label_ccc;
|
||||
GtkWidget *p12_soft_reset_time_spinbutton_ccc;
|
||||
GtkWidget *p3_soft_reset_time_button_label_ccc;
|
||||
GtkWidget *p3_soft_reset_time_spinbutton_ccc;
|
||||
GtkWidget *p4_soft_reset_time_button_label_ccc;
|
||||
GtkWidget *p4_soft_reset_time_spinbutton_ccc;
|
||||
GtkWidget *td_soft_reset_time_button_label_ccc;
|
||||
GtkWidget *td_soft_reset_time_spinbutton_ccc;
|
||||
GtkWidget *d2_soft_reset_time_button_label_ccc;
|
||||
GtkWidget *d2_soft_reset_time_spinbutton_ccc;
|
||||
GtkWidget *sc_soft_reset_time_button_label_ccc;
|
||||
GtkWidget *sc_soft_reset_time_spinbutton_ccc;
|
||||
GtkWidget *rt_soft_reset_time_button_label_ccc;
|
||||
GtkWidget *rt_soft_reset_time_spinbutton_ccc;
|
||||
GtkWidget *always_wait_for_reset_timers_checkbutton_ccc;
|
||||
GtkWidget *usb_resets_label_ccc;
|
||||
GtkWidget *enable_usb_bulk_reset_checkbutton_ccc;
|
||||
GtkWidget *enable_usb_soft_reset_checkbutton_ccc;
|
||||
GtkWidget *enable_usb_hard_reset_checkbutton_ccc;
|
||||
GtkWidget *enable_usb_port_reset_checkbutton_ccc;
|
||||
GtkWidget *sectorsize_button_label_ccc;
|
||||
GtkWidget *sectorsize_spinbutton_ccc;
|
||||
GtkWidget *alignment_button_label_ccc;
|
||||
GtkWidget *alignment_spinbutton_ccc;
|
||||
GtkWidget *maxreadrate_button_label_ccc;
|
||||
GtkWidget *maxreadrate_spinbutton_ccc;
|
||||
GtkWidget *enable_rebuild_assist_checkbutton_ccc;
|
||||
GtkWidget *enable_process_chunk_checkbutton_ccc;
|
||||
GtkWidget *enable_read_twice_checkbutton_ccc;
|
||||
GtkWidget *enable_retry_connecting_checkbutton_ccc;
|
||||
GtkWidget *enable_phase_log_checkbutton_ccc;
|
||||
GtkWidget *confirmation_box_label_ccc;
|
||||
GtkWidget *disable_ports_label_ccc;
|
||||
GtkWidget *disable_ports_info_label_ccc;
|
||||
GtkWidget *current_ports_label_ccc;
|
||||
GtkWidget *current_ports_info_label_ccc;
|
||||
GtkWidget *set_disabled_ports_label_ccc;
|
||||
GtkWidget *set_disabled_ports_text_ccc;
|
||||
GtkWidget *updated_ports_label_ccc;
|
||||
GtkWidget *updated_ports_info_label_ccc;
|
||||
GtkWidget *update_ports_button_ccc;
|
||||
GtkWidget *select_lun_label_ccc;
|
||||
GtkWidget *select_lun_info_label_ccc;
|
||||
GtkWidget *lun_values_label_ccc;
|
||||
GtkWidget *lun_values_info_label_ccc;
|
||||
GtkWidget *set_current_lun_label_ccc;
|
||||
GtkWidget *current_lun_spinbutton_ccc;
|
||||
GtkWidget *enable_scsi_write_checkbutton_ccc;
|
||||
GtkWidget *enable_output_sector_size_checkbutton_ccc;
|
||||
GtkWidget *output_sector_size_button_label_ccc;
|
||||
GtkWidget *driver_io_scsi_only_checkbutton_ccc;
|
||||
GtkWidget *use_physical_sector_size_for_virtual_checkbutton_ccc;
|
||||
GtkWidget *output_sector_size_spinbutton_ccc;
|
||||
GtkWidget *driver_error_options_label_ccc;
|
||||
GtkWidget *driver_return_error_radio_button_ccc;
|
||||
GtkWidget *driver_return_zeros_radio_button_ccc;
|
||||
GtkWidget *driver_return_marked_radio_button_ccc;
|
||||
GtkWidget *virtual_disk_device_name_label_ccc;
|
||||
GtkWidget *virtual_disk_device_name_text_ccc;
|
||||
GtkWidget *driver_minimum_cluster_size_button_label_ccc;
|
||||
GtkWidget *driver_minimum_cluster_size_spinbutton_ccc;
|
||||
GtkWidget *enable_extended_analyze_checkbutton_ccc;
|
||||
GtkWidget *use_color_statusbar_checkbutton_ccc;
|
||||
GtkWidget *primary_relay_settings_label_ccc;
|
||||
GtkWidget *primary_relay_settings_info_label_ccc;
|
||||
GtkWidget *label_current_primary_relay_board_ccc;
|
||||
GtkWidget *data_current_relay_board_a_ccc;
|
||||
GtkWidget *primary_relay_board_settings_label_ccc;
|
||||
GtkWidget *primary_relay_activation_label_ccc;
|
||||
GtkWidget *activate_primary_relay1_checkbutton_ccc;
|
||||
GtkWidget *activate_primary_relay2_checkbutton_ccc;
|
||||
GtkWidget *activate_primary_relay3_checkbutton_ccc;
|
||||
GtkWidget *activate_primary_relay4_checkbutton_ccc;
|
||||
GtkWidget *activate_primary_relay5_checkbutton_ccc;
|
||||
GtkWidget *activate_primary_relay6_checkbutton_ccc;
|
||||
GtkWidget *activate_primary_relay7_checkbutton_ccc;
|
||||
GtkWidget *activate_primary_relay8_checkbutton_ccc;
|
||||
GtkWidget *primary_relay_deactivation_label_ccc;
|
||||
GtkWidget *deactivate_primary_relay1_checkbutton_ccc;
|
||||
GtkWidget *deactivate_primary_relay2_checkbutton_ccc;
|
||||
GtkWidget *deactivate_primary_relay3_checkbutton_ccc;
|
||||
GtkWidget *deactivate_primary_relay4_checkbutton_ccc;
|
||||
GtkWidget *deactivate_primary_relay5_checkbutton_ccc;
|
||||
GtkWidget *deactivate_primary_relay6_checkbutton_ccc;
|
||||
GtkWidget *deactivate_primary_relay7_checkbutton_ccc;
|
||||
GtkWidget *deactivate_primary_relay8_checkbutton_ccc;
|
||||
GtkWidget *primary_relay_activate_time_label_ccc;
|
||||
GtkWidget *primary_relay_energize_time_spinbutton_ccc;
|
||||
GtkWidget *primary_relay_delay_time_label_ccc;
|
||||
GtkWidget *primary_relay_delay_time_spinbutton_ccc;
|
||||
GtkWidget *test_primary_relay_button_ccc;
|
||||
GtkWidget *activate_primary_relay_button_ccc;
|
||||
GtkWidget *deactivate_primary_relay_button_ccc;
|
||||
GtkWidget *activate_primary_relay_button_main_ccc;
|
||||
GtkWidget *deactivate_primary_relay_button_main_ccc;
|
||||
GtkWidget *disable_identify_checkbutton_ccc;
|
||||
|
||||
GtkWidget *label_project_ccc;
|
||||
GtkWidget *data_project_ccc;
|
||||
GtkWidget *label_domain_ccc;
|
||||
GtkWidget *data_domain_ccc;
|
||||
GtkWidget *label_source_ccc;
|
||||
GtkWidget *data_source_ccc;
|
||||
GtkWidget *label_destination_ccc;
|
||||
GtkWidget *data_destination_ccc;
|
||||
GtkWidget *label_totallba_ccc;
|
||||
GtkWidget *data_totallba_ccc;
|
||||
GtkWidget *label_lbatoread_ccc;
|
||||
GtkWidget *data_lbatoread_ccc;
|
||||
GtkWidget *label_domainsize_ccc;
|
||||
GtkWidget *data_domainsize_ccc;
|
||||
GtkWidget *label_runtime_ccc;
|
||||
GtkWidget *data_runtime_ccc;
|
||||
GtkWidget *label_remainingtime_ccc;
|
||||
GtkWidget *data_remainingtime_ccc;
|
||||
GtkWidget *label_currentposition_ccc;
|
||||
GtkWidget *data_currentposition_ccc;
|
||||
GtkWidget *label_currentstatus_ccc;
|
||||
GtkWidget *data_currentstatus_ccc;
|
||||
GtkWidget *label_currentrate_ccc;
|
||||
GtkWidget *data_currentrate_ccc;
|
||||
GtkWidget *label_recentrate_ccc;
|
||||
GtkWidget *data_recentrate_ccc;
|
||||
GtkWidget *label_totalrate_ccc;
|
||||
GtkWidget *data_totalrate_ccc;
|
||||
GtkWidget *label_skipsize_ccc;
|
||||
GtkWidget *data_skipsize_ccc;
|
||||
GtkWidget *label_slowskips_ccc;
|
||||
GtkWidget *data_slowskips_ccc;
|
||||
GtkWidget *label_skips_ccc;
|
||||
GtkWidget *data_skips_ccc;
|
||||
GtkWidget *label_skipruns_ccc;
|
||||
GtkWidget *data_skipruns_ccc;
|
||||
GtkWidget *label_skipresets_ccc;
|
||||
GtkWidget *data_skipresets_ccc;
|
||||
GtkWidget *label_runsize_ccc;
|
||||
GtkWidget *data_runsize_ccc;
|
||||
GtkWidget *label_finished_ccc;
|
||||
GtkWidget *data_finished_ccc;
|
||||
GtkWidget *label_nontried_ccc;
|
||||
GtkWidget *data_nontried_ccc;
|
||||
GtkWidget *label_nontrimmed_ccc;
|
||||
GtkWidget *data_nontrimmed_ccc;
|
||||
GtkWidget *label_nondivided_ccc;
|
||||
GtkWidget *data_nondivided_ccc;
|
||||
GtkWidget *label_nonscraped_ccc;
|
||||
GtkWidget *data_nonscraped_ccc;
|
||||
GtkWidget *label_bad_ccc;
|
||||
GtkWidget *data_bad_ccc;
|
||||
GtkWidget *label_datapreview_ccc;
|
||||
GtkWidget *data_datapreview_ccc;
|
||||
GtkWidget *label_longestreadtime_ccc;
|
||||
GtkWidget *data_longestreadtime_ccc;
|
||||
GtkWidget *label_filled_ccc;
|
||||
GtkWidget *data_filled_ccc;
|
||||
GtkWidget *label_retried_ccc;
|
||||
GtkWidget *data_retried_ccc;
|
||||
GtkWidget *label_retrypasses_ccc;
|
||||
GtkWidget *data_retrypasses_ccc;
|
||||
GtkWidget *label_drivermode_ccc;
|
||||
GtkWidget *data_drivermode_ccc;
|
||||
// GtkWidget *label__ccc;
|
||||
// GtkWidget *data__ccc;
|
||||
|
||||
GtkAdjustment *gtk_adjustment_ccc;
|
||||
|
||||
gint display_status_timer_ccc = 0;
|
||||
int display_status_timer_running_ccc = 0;
|
||||
|
||||
char program_title[256];
|
||||
int source_chosen_ccc = 0;
|
||||
int destination_chosen_ccc = 0;
|
||||
int destination_size_valid_ccc = 0;
|
||||
int project_chosen_ccc = 0;
|
||||
int connected_ccc = 0;
|
||||
int running_ccc = 0;
|
||||
int new_project_ccc = 0;
|
||||
int color_switch_flag_ccc = 0;
|
||||
bool destination_is_generic_ccc = false;
|
||||
int disabled_ports_changed_ccc = 0;
|
||||
int usbr1_chosen_ccc = 0;
|
||||
|
||||
void select_file_ccc(void);
|
||||
|
||||
void select_ddrescue_file_ccc(void);
|
||||
|
||||
void export_ddrescue_file_ccc(void);
|
||||
|
||||
void new_file_ccc(void);
|
||||
|
||||
void save_file_ccc(void);
|
||||
|
||||
void save_file_as_ccc(void);
|
||||
|
||||
void save_domain_ccc(void);
|
||||
|
||||
void save_domain_as_ccc(void);
|
||||
|
||||
static void new_domain_file_ccc(char *log_file);
|
||||
|
||||
static void load_log_file_ccc(char *log_file);
|
||||
|
||||
static void add_domain_file_ccc(char *log_file);
|
||||
|
||||
static void load_domain_file_ccc(char *log_file);
|
||||
|
||||
static void new_log_file_ccc(char *log_file);
|
||||
|
||||
static void load_ddrescue_log_file_ccc(char *log_file);
|
||||
|
||||
void export_language_file_ccc(void);
|
||||
|
||||
static void file_export_sel_ccc(char *export_file);
|
||||
|
||||
void import_language_file_ccc(void);
|
||||
|
||||
static void file_import_sel_ccc(char *import_file);
|
||||
|
||||
int set_language_ccc(void);
|
||||
|
||||
void choose_source_ccc(void);
|
||||
|
||||
void get_source_from_button_ccc(GtkWidget *widget, gpointer data);
|
||||
|
||||
void choose_destination_ccc(void);
|
||||
|
||||
void get_destination_from_button_ccc(GtkWidget *widget, gpointer data);
|
||||
|
||||
void choose_image_ccc(void);
|
||||
|
||||
void choose_null_ccc(void);
|
||||
|
||||
void set_connected_ccc(void);
|
||||
|
||||
void set_disconnected_ccc(void);
|
||||
|
||||
void clear_destination_ccc(void);
|
||||
|
||||
void set_stop_signal_ccc(void);
|
||||
|
||||
void start_cloning_ccc(void);
|
||||
|
||||
void quit_and_close_ccc(void);
|
||||
|
||||
void open_clone_settings_dialog_ccc(void);
|
||||
|
||||
void open_advanced_settings_dialog_ccc(void);
|
||||
|
||||
void open_timer_settings_dialog_ccc(void);
|
||||
|
||||
void activate_status_buttons_ccc(void);
|
||||
|
||||
void deactivate_status_buttons_ccc(void);
|
||||
|
||||
void set_mode_ccc(void);
|
||||
|
||||
void update_status_buttons_ccc(void);
|
||||
|
||||
void set_state_from_button_ccc(GtkWidget *widget, gpointer data);
|
||||
|
||||
void do_reset_status_ccc(void);
|
||||
|
||||
void do_reset_log_status_ccc(void);
|
||||
|
||||
void do_repair_log_ccc(void);
|
||||
|
||||
void about_ccc(void);
|
||||
|
||||
void start_display_status_update_timer_ccc(void);
|
||||
|
||||
gint display_status_update_action_ccc(gpointer data);
|
||||
|
||||
void set_driver_mode_button_status_ccc(bool active);
|
||||
|
||||
void check_driver_null_condition_ccc(void);
|
||||
|
||||
void update_ports_ccc(void);
|
||||
|
||||
void start_analyzing_ccc(void);
|
||||
|
||||
void display_analyze_results_ccc(void);
|
||||
|
||||
void get_smart_data_ccc(void);
|
||||
|
||||
void display_smart_data_ccc(void);
|
||||
|
||||
void display_identify_data_ccc(void);
|
||||
|
||||
void choose_primary_usb_ccc(void);
|
||||
|
||||
void get_usb_from_button_ccc(GtkWidget *w, gpointer data);
|
||||
|
||||
void clear_usbr1_ccc(void);
|
||||
|
||||
void clear_usbd1_ccc(void);
|
||||
|
||||
void map_heads_ccc(void);
|
||||
|
||||
int set_data_dump_filename_ccc(void);
|
||||
|
||||
void get_data_dump_filename_ccc(void);
|
||||
|
||||
void analyze_quick_ccc(void);
|
||||
|
||||
void analyze_long_ccc(void);
|
||||
|
||||
struct MemoryStruct
|
||||
{
|
||||
char *memory;
|
||||
size_t size;
|
||||
};
|
||||
|
||||
char *languages_ccc[] = {
|
||||
// "Afrikaans","af","Afrikaans",
|
||||
// "Albanian","sq","shqiptar",
|
||||
// "Amharic","am","አማርኛ",
|
||||
"Arabic", "ar", "عربى",
|
||||
// "Armenian","hy","հայերեն",
|
||||
// "Azeerbaijani","az","Azeerbaijani",
|
||||
// "Basque","eu","Euskal",
|
||||
// "Belarusian","be","беларускі",
|
||||
// "Bengali","bn","বাঙালি",
|
||||
// "Bosnian","bs","bosanski",
|
||||
// "Bulgarian","bg","български",
|
||||
// "Catalan","ca","català",
|
||||
// "Cebuano","ceb","Cebuano",
|
||||
// "Chichewa","ny","Chichewa",
|
||||
"Chinese (Simplified)", "zh-CN", "简体中文)",
|
||||
// "Chinese (Traditional)","zh-TW","中國傳統的)",
|
||||
// "Corsican","co","Corsu",
|
||||
// "Croatian","hr","hrvatski",
|
||||
// "Czech","cs","čeština",
|
||||
// "Danish","da","dansk",
|
||||
// "Dutch","nl","Nederlands",
|
||||
// "Esperanto","eo","Esperanto",
|
||||
// "Estonian","et","eesti",
|
||||
// "Filipino","tl","Pilipino",
|
||||
// "Finnish","fi","Suomalainen",
|
||||
"French", "fr", "français",
|
||||
// "Frisian","fy","Frysk",
|
||||
// "Galician","gl","galego",
|
||||
// "Georgian","ka","ქართული",
|
||||
"German", "de", "Deutsche",
|
||||
// "Greek","el","Ελληνικά",
|
||||
// "Gujarati","gu","ગુજરાતી",
|
||||
// "Haitian Creole","ht","kreyòl ayisyen",
|
||||
// "Hausa","ha","Hausa",
|
||||
// "Hawaiian","haw","ʻŌlelo Hawaiʻi",
|
||||
// "Hebrew","iw","עִברִית",
|
||||
"Hindi", "hi", "हिंदी",
|
||||
// "Hmong","hmn","Hmong",
|
||||
// "Hungarian","hu","Magyar",
|
||||
// "Icelandic","is","icelandic",
|
||||
// "Igbo","ig","Igbo",
|
||||
"Indonesian", "id", "bahasa Indonesia",
|
||||
// "Irish","ga","Gaeilge",
|
||||
"Italian", "it", "italiano",
|
||||
"Japanese", "ja", "日本語",
|
||||
// "Javanese","jw","Jawa",
|
||||
// "Kannada","kn","ಕನ್ನಡ",
|
||||
// "Kazakh","kk","Қазақ",
|
||||
// "Khmer","km","ភាសាខ្មែរ",
|
||||
// "Korean","ko","한국어",
|
||||
// "Kurdish","ku","Kurdî",
|
||||
// "Kyrgyz","ky","Кыргызча",
|
||||
// "Lao","lo","ລາວ",
|
||||
// "Latin","la","Latine",
|
||||
// "Latvian","lv","Latvijas",
|
||||
// "Lithuanian","lt","Lietuvos",
|
||||
// "Luxembourgish","lb","lëtzebuergesch",
|
||||
// "Macedonian","mk","Македонски",
|
||||
// "Malagasy","mg","Malagasy",
|
||||
// "Malay","ms","Malay",
|
||||
// "Malayalam","ml","മലയാളം",
|
||||
// "Maltese","mt","Malti",
|
||||
// "Maori","mi","Maori",
|
||||
// "Marathi","mr","मराठी",
|
||||
// "Mongolian","mn","Монгол",
|
||||
// "Burmese","my","မြန်မာ",
|
||||
// "Nepali","ne","नेपाली",
|
||||
// "Norwegian","no","norsk",
|
||||
// "Pashto","ps","پښتو",
|
||||
// "Persian","fa","فارسی",
|
||||
// "Polish","pl","Polskie",
|
||||
"Portuguese", "pt", "Português",
|
||||
// "Punjabi","pa","ਪੰਜਾਬੀ",
|
||||
// "Romanian","ro","Română",
|
||||
"Russian", "ru", "русский",
|
||||
// "Samoan","sm","Samoa",
|
||||
// "Scots Gaelic","gd","Gàidhlig",
|
||||
// "Serbian","sr","Српски",
|
||||
// "Sesotho","st","Sesotho",
|
||||
// "Shona","sn","Shona",
|
||||
// "Sindhi","sd","سنڌي",
|
||||
// "Sinhala","si","සිංහල",
|
||||
// "Slovak","sk","slovenský",
|
||||
// "Slovenian","sl","slovenski",
|
||||
// "Somali","so","Soomaali",
|
||||
"Spanish", "es", "Español",
|
||||
// "Sundanese","su","Sunda",
|
||||
// "Swahili","sw","Kiswahili",
|
||||
// "Swedish","sv","svenska",
|
||||
// "Tajik","tg","Тоҷикистон",
|
||||
// "Tamil","ta","தமிழ்",
|
||||
// "Telugu","te","తెలుగు",
|
||||
// "Thai","th","ไทย",
|
||||
// "Turkish","tr","Türk",
|
||||
// "Ukrainian","uk","український",
|
||||
// "Urdu","ur","اردو",
|
||||
// "Uzbek","uz","O'zbekiston",
|
||||
// "Vietnamese","vi","Tiếng Việt",
|
||||
// "Welsh","cy","Cymraeg",
|
||||
// "Xhosa","xh","isiXhosa",
|
||||
// "Yiddish","yi","ייִדיש",
|
||||
// "Yoruba","yo","yorùbá",
|
||||
// "Zulu","zu","Zulu"
|
||||
};
|
||||
|
||||
#define n_languages_ccc (sizeof(languages_ccc) / sizeof(const char *))
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,15 +1,15 @@
|
||||
set(SOURCES
|
||||
oscviewer${GTKVER}.c
|
||||
oscviewer${GTKVER}.h
|
||||
oscviewer.c
|
||||
oscviewer.h
|
||||
)
|
||||
|
||||
# Generate header files from resources
|
||||
add_custom_command(
|
||||
OUTPUT oscviewer${GTKVER}_glade.h
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/oscviewer${GTKVER}.glade oscviewer${GTKVER}.glade
|
||||
COMMAND xxd -i oscviewer${GTKVER}.glade oscviewer${GTKVER}_glade.h
|
||||
OUTPUT oscviewer_glade.h
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/oscviewer.glade oscviewer.glade
|
||||
COMMAND xxd -i oscviewer.glade oscviewer_glade.h
|
||||
)
|
||||
LIST(APPEND RESOURCES oscviewer${GTKVER}_glade.h)
|
||||
LIST(APPEND RESOURCES oscviewer_glade.h)
|
||||
|
||||
# Generate config file for OSCViewer
|
||||
configure_file(config.h.in config.h)
|
||||
@@ -21,17 +21,10 @@ add_executable(oscviewer ${SOURCES} ${RESOURCES})
|
||||
target_include_directories(oscviewer PRIVATE ${CMAKE_CURRENT_BINARY_DIR})
|
||||
|
||||
# Add GTK dependency
|
||||
if(GTKVER EQUAL 2)
|
||||
target_include_directories(oscviewer PRIVATE ${GTK2_INCLUDE_DIRS})
|
||||
target_link_directories(oscviewer PRIVATE ${GTK2_LIBRARY_DIRS})
|
||||
target_compile_options(oscviewer PRIVATE ${GTK2_CFLAGS_OTHER})
|
||||
target_link_libraries(oscviewer ${GTK2_LIBRARIES})
|
||||
elseif(GTKVER EQUAL 3)
|
||||
target_include_directories(oscviewer PRIVATE ${GTK3_INCLUDE_DIRS})
|
||||
target_link_directories(oscviewer PRIVATE ${GTK3_LIBRARY_DIRS})
|
||||
target_compile_options(oscviewer PRIVATE ${GTK3_CFLAGS_OTHER})
|
||||
target_link_libraries(oscviewer ${GTK3_LIBRARIES})
|
||||
endif()
|
||||
target_include_directories(oscviewer PRIVATE ${GTK3_INCLUDE_DIRS})
|
||||
target_link_directories(oscviewer PRIVATE ${GTK3_LIBRARY_DIRS})
|
||||
target_compile_options(oscviewer PRIVATE ${GTK3_CFLAGS_OTHER})
|
||||
target_link_libraries(oscviewer ${GTK3_LIBRARIES})
|
||||
|
||||
target_compile_options(oscviewer PRIVATE ${CC_OPTIONS})
|
||||
|
||||
|
||||
@@ -4,8 +4,8 @@
|
||||
// This software is distributed WITHOUT ANY WARRANTY.
|
||||
|
||||
#include "config.h"
|
||||
#include "oscviewer3.h"
|
||||
#include "oscviewer3_glade.h"
|
||||
#include "oscviewer.h"
|
||||
#include "oscviewer_glade.h"
|
||||
|
||||
char *title = "OSCViewer";
|
||||
char *version_number = OSCVIEWER_VERSION;
|
||||
@@ -123,7 +123,7 @@ int main(int argc, char **argv)
|
||||
|
||||
GtkBuilder *builder = gtk_builder_new();
|
||||
GError *err = NULL; // It is mandatory to initialize to NULL
|
||||
if (0 == gtk_builder_add_from_string(builder, (const gchar *)oscviewer3_glade, oscviewer3_glade_len, &err))
|
||||
if (0 == gtk_builder_add_from_string(builder, (const gchar *)oscviewer_glade, oscviewer_glade_len, &err))
|
||||
{
|
||||
fprintf(stderr, "Error adding build from file. Error: %s\n", err->message);
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,619 +0,0 @@
|
||||
// Copyright (C) Scott Dwyer and OpenSuperClone contributors.
|
||||
// You may use/distribute/modify this freely, under the terms of
|
||||
// the GNU General Public License version 2 or later version.
|
||||
// This software is distributed WITHOUT ANY WARRANTY.
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <signal.h>
|
||||
#include <errno.h>
|
||||
#include <getopt.h>
|
||||
#include <stdbool.h>
|
||||
#include <string.h>
|
||||
#include <ctype.h>
|
||||
#include <stdint.h>
|
||||
#include <math.h>
|
||||
#include <malloc.h>
|
||||
#include <gtk/gtk.h>
|
||||
#include <cairo.h>
|
||||
#ifdef DEBUG
|
||||
#include <curl/curl.h>
|
||||
#endif
|
||||
#include <sys/stat.h>
|
||||
|
||||
#define LANGFILE 0
|
||||
#define LANGQUIT 1
|
||||
#define LANGOPEN 2
|
||||
#define LANGERROR 3
|
||||
#define LANGWARN 4
|
||||
#define LANGLANGUAGE 5
|
||||
#define LANGEXPORTLANG 6
|
||||
#define LANGIMPORTLANG 7
|
||||
#define LANGLANGEXPORTERR 8
|
||||
#define LANGLANGIMPORTERR 9
|
||||
#define LANGLANGIMPORTERR2 10
|
||||
#define LANGLANGCHANGESUCCESS 11
|
||||
#define LANGSUCCESS 12
|
||||
#define LANGOPTIONS 13
|
||||
#define LANGLEFTRES 14
|
||||
#define LANGMAINRES 15
|
||||
#define LANGMAINSIZE 16
|
||||
#define LANGAUTOUPDATE 17
|
||||
#define LANGSHOWBADHEAD 18
|
||||
#define LANGNONTRIMMED 19
|
||||
#define LANGNONDIVIDED 20
|
||||
#define LANGNONSCRAPED 21
|
||||
#define LANGBAD 22
|
||||
#define LANGNONTRIED 23
|
||||
#define LANGFINISHED 24
|
||||
#define LANGCURRENT 25
|
||||
#define LANGBADHEAD 26
|
||||
#define LANG1PT 27
|
||||
#define LANG2PT 28
|
||||
#define LANG3PT 29
|
||||
#define LANG4PT 30
|
||||
#define LANG6PT 31
|
||||
#define LANG8PT 32
|
||||
#define LANG10PT 33
|
||||
#define LANG12PT 34
|
||||
#define LANG14PT 35
|
||||
#define LANG16PT 36
|
||||
#define LANG4K 37
|
||||
#define LANG8K 38
|
||||
#define LANG16K 39
|
||||
#define LANG32K 40
|
||||
#define LANG64K 41
|
||||
#define LANG128K 42
|
||||
#define LANG256K 43
|
||||
#define LANG512K 44
|
||||
#define LANG1M 45
|
||||
#define LANGOFF 46
|
||||
#define LANG5SEC 47
|
||||
#define LANG10SEC 48
|
||||
#define LANG30SEC 49
|
||||
#define LANG1MIN 50
|
||||
#define LANG2MIN 51
|
||||
#define LANG5MIN 52
|
||||
#define LANGSHOWGOODDATA 53
|
||||
#define LANGGOODDATA 54
|
||||
#define LANG2M 55
|
||||
#define LANG4M 56
|
||||
#define LANG8M 57
|
||||
#define LANG16M 58
|
||||
#define LANGSHOWTIMING 59
|
||||
#define LANGTIMING 60
|
||||
#define LANGDOMAIN 61
|
||||
#define LANGSHOWDOMAIN 62
|
||||
#define LANGDOMAINBLOCKNOTFOUND 63
|
||||
#define LANGDMDEDOMAIN 64
|
||||
#define LANGAREAS 65
|
||||
#define LANGDUMMY 66 // always put at bottom of language list
|
||||
|
||||
// TODO MAKE SURE TO UPDATE COUNT EVERY TIME! it should be one more than last defined
|
||||
#define LANGCOUNT 67
|
||||
#define MAXLANGLENGTH 256
|
||||
char enlang[LANGCOUNT][MAXLANGLENGTH];
|
||||
char curlang[LANGCOUNT][MAXLANGLENGTH];
|
||||
char newlang[LANGCOUNT][MAXLANGLENGTH];
|
||||
char program_title[256];
|
||||
GtkWidget *filelangex;
|
||||
GtkWidget *filelangim;
|
||||
|
||||
int setup_enlanguage(void);
|
||||
|
||||
int copy_enlanguage(void);
|
||||
|
||||
int copy_newlanguage(void);
|
||||
|
||||
#define TRANSLATETIMERALL 1000000000 // nanosecond delay for every translate call
|
||||
#define TRANSLATETIMERFAST 10000000000 // nanosecond delay for each normal translate call
|
||||
#define TRANSLATETIMERSLOW 2000000000 // nanosecond delay for each slow translate call
|
||||
|
||||
#define BLACK 0x000000 // (0,0,0)
|
||||
#define WHITE 0xFFFFFF // (255,255,255)
|
||||
#define RED 0xFF0000 // (255,0,0)
|
||||
#define LIME 0x00FF00 // (0,255,0)
|
||||
#define BLUE 0x0000FF // (0,0,255)
|
||||
#define YELLOW 0xFFFF00 // (255,255,0)
|
||||
#define CYAN 0x00FFFF // (0,255,255)
|
||||
#define MAGENTA 0xFF00FF // (255,0,255)
|
||||
#define SILVER 0xC0C0C0 // (192,192,192)
|
||||
#define GRAY 0x808080 // (128,128,128)
|
||||
#define MAROON 0x800000 // (128,0,0)
|
||||
#define OLIVE 0x808000 // (128,128,0)
|
||||
#define GREEN 0x008000 // (0,128,0)
|
||||
#define PURPLE 0x800080 // (128,0,128)
|
||||
#define TEAL 0x008080 // (0,128,128)
|
||||
#define NAVY 0x000080 // (0,0,128)
|
||||
#define ORANGE 0xFFA500 // (255,165,0)
|
||||
#define MYBLUE 0x0080FF // (0,128,255)
|
||||
#define MYORANGE 0xFF8000 // (255,128,0)
|
||||
|
||||
#define NONTRIED 0
|
||||
#define NONTRIMMED 0x10
|
||||
#define NONDIVIDED 0x20
|
||||
#define NONSCRAPED 0x30
|
||||
#define BAD 0x40
|
||||
#define BAD_HEAD 0x80
|
||||
#define FINISHED 0x7f
|
||||
#define STATUS_MASK 0xff
|
||||
#define INFO_MASK 0xffffff00
|
||||
#define BAD_HEAD_MASK 0xffffffffffffff7f
|
||||
|
||||
#define NONTRIED_BIT 0x0001
|
||||
#define NONTRIMMED_BIT 0x0002
|
||||
#define NONDIVIDED_BIT 0x0004
|
||||
#define NONSCRAPED_BIT 0x0008
|
||||
#define BAD_BIT 0x0010
|
||||
#define BAD_HEAD_BIT 0x0020
|
||||
#define FINISHED_BIT 0x0040
|
||||
#define UNKNOWN_BIT 0x0080
|
||||
|
||||
#define MAINWINDOWWIDTH 800
|
||||
#define MAINWINDOWHEIGTH 600
|
||||
#define LEFTSQUARESIZE 2
|
||||
#define MAINSQUARESIZE 8
|
||||
#define MAINGRIDSIZE 65536
|
||||
|
||||
#define DISPLAY_MESSAGE_SIZE 4096
|
||||
#define EXIT_MESSAGE_SIZE 2048
|
||||
#define TEMP_MESSAGE_SIZE 2048
|
||||
#define DEBUG_MESSAGE_SIZE 4096
|
||||
#define ERROR_MESSAGE_SIZE 1024
|
||||
#define MAX_LINE_LENGTH 256
|
||||
|
||||
gint main_window_width = MAINWINDOWWIDTH;
|
||||
gint main_window_height = MAINWINDOWHEIGTH;
|
||||
gint main_vbox_width;
|
||||
gint main_vbox_height;
|
||||
gint main_hbox_width;
|
||||
gint main_hbox_height;
|
||||
gint left_vbox_width;
|
||||
gint left_vbox_height;
|
||||
gint right_vbox_width;
|
||||
gint right_vbox_height;
|
||||
gint top_hbox_width;
|
||||
gint top_hbox_height;
|
||||
gint top_info_width;
|
||||
gint top_info_height;
|
||||
gint top_drawing_area_width;
|
||||
gint top_drawing_area_height;
|
||||
gint main_drawing_area_width;
|
||||
gint main_drawing_area_height;
|
||||
gint left_drawing_area_width;
|
||||
gint left_drawing_area_height;
|
||||
gint main_scrolled_window_width;
|
||||
gint main_scrolled_window_height;
|
||||
gint main_drawing_vbox_width;
|
||||
gint main_drawing_vbox_height;
|
||||
|
||||
GtkWidget *language_window;
|
||||
GtkWidget *main_window;
|
||||
GtkWidget *main_vbox;
|
||||
GtkWidget *main_hbox;
|
||||
GtkWidget *left_vbox;
|
||||
GtkWidget *right_vbox;
|
||||
GtkWidget *top_hbox;
|
||||
GtkWidget *top_info_box;
|
||||
GtkWidget *top_drawing_area;
|
||||
GtkWidget *main_drawing_area;
|
||||
GtkWidget *left_drawing_area;
|
||||
GtkWidget *main_scrolled_window;
|
||||
GtkWidget *main_drawing_vbox;
|
||||
GtkWidget *frame;
|
||||
|
||||
GtkWidget *progress_log_label;
|
||||
GtkWidget *domain_log_label;
|
||||
|
||||
GtkWidget *block_information_label;
|
||||
|
||||
// menu items
|
||||
GtkWidget *menubar;
|
||||
GtkWidget *menuvbox;
|
||||
GtkWidget *menuseparater;
|
||||
// file menu
|
||||
GtkWidget *filemenu;
|
||||
GtkWidget *filemi;
|
||||
GtkWidget *quitmi;
|
||||
GtkWidget *openmi;
|
||||
GtkWidget *domainmi;
|
||||
GtkWidget *dmdedomainmi;
|
||||
GtkWidget *filew;
|
||||
GtkWidget *domainw;
|
||||
// options menu
|
||||
GtkWidget *optionsmenu;
|
||||
GtkWidget *optionsmi;
|
||||
GtkWidget *leftresmenu;
|
||||
GtkWidget *leftresolutionmi;
|
||||
GtkWidget *leftresbutton1;
|
||||
GtkWidget *leftresbutton2;
|
||||
GtkWidget *leftresbutton3;
|
||||
GtkWidget *leftresbutton4;
|
||||
GtkWidget *mainresmenu;
|
||||
GtkWidget *mainresolutionmi;
|
||||
GtkWidget *mainresbutton4;
|
||||
GtkWidget *mainresbutton6;
|
||||
GtkWidget *mainresbutton8;
|
||||
GtkWidget *mainresbutton10;
|
||||
GtkWidget *mainresbutton12;
|
||||
GtkWidget *mainresbutton14;
|
||||
GtkWidget *mainresbutton16;
|
||||
GtkWidget *maingridsizemi;
|
||||
GtkWidget *mainsizemenu;
|
||||
GtkWidget *mainsizebutton4k;
|
||||
GtkWidget *mainsizebutton8k;
|
||||
GtkWidget *mainsizebutton16k;
|
||||
GtkWidget *mainsizebutton32k;
|
||||
GtkWidget *mainsizebutton64k;
|
||||
GtkWidget *mainsizebutton128k;
|
||||
GtkWidget *mainsizebutton256k;
|
||||
GtkWidget *mainsizebutton512k;
|
||||
GtkWidget *mainsizebutton1m;
|
||||
GtkWidget *mainsizebutton2m;
|
||||
GtkWidget *mainsizebutton4m;
|
||||
GtkWidget *mainsizebutton8m;
|
||||
GtkWidget *mainsizebutton16m;
|
||||
GtkWidget *autoupdatemi;
|
||||
GtkWidget *autoupdatemenu;
|
||||
GtkWidget *autoupdatebuttonoff;
|
||||
GtkWidget *autoupdatebutton5s;
|
||||
GtkWidget *autoupdatebutton10s;
|
||||
GtkWidget *autoupdatebutton30s;
|
||||
GtkWidget *autoupdatebutton1m;
|
||||
GtkWidget *autoupdatebutton2m;
|
||||
GtkWidget *autoupdatebutton5m;
|
||||
GtkWidget *showbadcheck;
|
||||
GtkWidget *showdomaincheck;
|
||||
GtkWidget *optionsw;
|
||||
GSList *leftresgroup = NULL;
|
||||
GSList *mainresgroup = NULL;
|
||||
GSList *mainsizegroup = NULL;
|
||||
GSList *autoupgroup = NULL;
|
||||
GtkWidget *showgoodcheck;
|
||||
GtkWidget *showtimemi;
|
||||
GtkWidget *showtimingbuttonoff;
|
||||
GtkWidget *showtimingbutton1;
|
||||
GtkWidget *showtimingbutton2;
|
||||
GtkWidget *showtimingbutton3;
|
||||
GtkWidget *showtimingbutton4;
|
||||
GtkWidget *showtimingbutton5;
|
||||
GtkWidget *showtimingbutton7;
|
||||
GtkWidget *showtimingbutton10;
|
||||
GtkWidget *showtimingbutton15;
|
||||
GtkWidget *showtimingbutton20;
|
||||
GtkWidget *showtimingbutton25;
|
||||
GtkWidget *showtimingbutton30;
|
||||
GtkWidget *showtimingbutton40;
|
||||
GtkWidget *showtimingbutton50;
|
||||
GtkWidget *showtimingbutton60;
|
||||
|
||||
int debug = 0;
|
||||
int translate = 0;
|
||||
char exit_message[EXIT_MESSAGE_SIZE];
|
||||
char display_message[DISPLAY_MESSAGE_SIZE];
|
||||
char tempmessage[TEMP_MESSAGE_SIZE];
|
||||
char debug_message[DEBUG_MESSAGE_SIZE];
|
||||
char error_message[ERROR_MESSAGE_SIZE];
|
||||
char log_file[1024];
|
||||
char domain_file[1024];
|
||||
int log_rows = 1000;
|
||||
int domain_rows = 1000;
|
||||
int total_lines = 0;
|
||||
int domain_lines = 0;
|
||||
int regular_domain = 0;
|
||||
long long *lposition;
|
||||
long long *lsize;
|
||||
long long *lstatus;
|
||||
long long *temp_lposition;
|
||||
long long *temp_lsize;
|
||||
long long *temp_lstatus;
|
||||
long long *dposition;
|
||||
long long *dsize;
|
||||
long long *dstatus;
|
||||
long long *temp_dposition;
|
||||
long long *temp_dsize;
|
||||
long long *temp_dstatus;
|
||||
long long current_position = 0;
|
||||
long long current_status = 0;
|
||||
long long total_size = 0;
|
||||
int sector_size = 512;
|
||||
long long temp_nontried = 0;
|
||||
long long temp_nontrimmed = 0;
|
||||
long long temp_nondivided = 0;
|
||||
long long temp_nonscraped = 0;
|
||||
long long temp_bad = 0;
|
||||
long long temp_finished = 0;
|
||||
long long temp_hightime = 0;
|
||||
int ddrescue_log = 0;
|
||||
char ddrstatus = ' ';
|
||||
double rcolor = 0;
|
||||
double gcolor = 0;
|
||||
double bcolor = 0;
|
||||
int left_square_size = LEFTSQUARESIZE;
|
||||
int main_square_size = MAINSQUARESIZE;
|
||||
int square_adjust = 0;
|
||||
int nontried_color = BLACK;
|
||||
int nontrimmed_color = SILVER;
|
||||
int nondivided_color = GRAY;
|
||||
int nonscraped_color = MYBLUE;
|
||||
int bad_color = RED;
|
||||
int good_color = LIME;
|
||||
int unknown_color = BLACK;
|
||||
int current_color_outer = YELLOW;
|
||||
int current_color_inner = YELLOW;
|
||||
int bad_head_color = PURPLE;
|
||||
int selected_color = WHITE;
|
||||
int time_color = WHITE;
|
||||
int domain_color = YELLOW;
|
||||
int main_grid_size = MAINGRIDSIZE;
|
||||
gint timeout_tag = 0;
|
||||
int autotimer_on = 0;
|
||||
int show_bad_head = 0;
|
||||
int show_good_data = 0;
|
||||
int show_timing = 0;
|
||||
int show_domain = 0;
|
||||
int mouse_x = 0;
|
||||
int mouse_y = 0;
|
||||
int mouse_x_old = 0;
|
||||
int mouse_y_old = 0;
|
||||
|
||||
void help(void);
|
||||
|
||||
void version(void);
|
||||
|
||||
static gboolean on_button_press(GtkWidget *widget, GdkEventButton *event, GdkWindowEdge edge);
|
||||
|
||||
static gboolean main_drawing_expose_event(GtkWidget *widget, GdkEventExpose *event, gpointer data);
|
||||
|
||||
static gboolean left_vbox_expose_event(GtkWidget *widget, GdkEventExpose *event, gpointer data);
|
||||
|
||||
static gboolean top_drawing_expose_event(GtkWidget *widget, GdkEventExpose *event, gpointer data);
|
||||
|
||||
void getsize_main_window(GtkWidget *widget, GtkAllocation *allocation, void *data);
|
||||
|
||||
void getsize_main_vbox(GtkWidget *widget, GtkAllocation *allocation, void *data);
|
||||
|
||||
void getsize_main_hbox(GtkWidget *widget, GtkAllocation *allocation, void *data);
|
||||
|
||||
void getsize_left_vbox(GtkWidget *widget, GtkAllocation *allocation, void *data);
|
||||
|
||||
void getsize_right_vbox(GtkWidget *widget, GtkAllocation *allocation, void *data);
|
||||
|
||||
void getsize_top_hbox(GtkWidget *widget, GtkAllocation *allocation, void *data);
|
||||
|
||||
void getsize_top_info_box(GtkWidget *widget, GtkAllocation *allocation, void *data);
|
||||
|
||||
void getsize_top_drawing_area(GtkWidget *widget, GtkAllocation *allocation, void *data);
|
||||
|
||||
void getsize_main_drawing_area(GtkWidget *widget, GtkAllocation *allocation, void *data);
|
||||
|
||||
void getsize_left_drawing_area(GtkWidget *widget, GtkAllocation *allocation, void *data);
|
||||
|
||||
void getsize_main_drawing_vbox(GtkWidget *widget, GtkAllocation *allocation, void *data);
|
||||
|
||||
void getsize_main_scrolled_window(GtkWidget *widget, GtkAllocation *allocation, void *data);
|
||||
|
||||
void change_main_resolution(GtkWidget *w, gpointer data);
|
||||
|
||||
void change_main_grid_size(GtkWidget *w, gpointer data);
|
||||
|
||||
void redraw_main_drawing_area(void);
|
||||
|
||||
void redraw_top_drawing_area(void);
|
||||
|
||||
void change_left_resolution(GtkWidget *w, gpointer data);
|
||||
|
||||
void redraw_left_vbox(void);
|
||||
|
||||
int initialize_memory(void);
|
||||
|
||||
int increase_log_memory(int new_lines);
|
||||
|
||||
int increase_domain_memory(int new_lines);
|
||||
|
||||
int message_exit(char *message);
|
||||
|
||||
int message_display(char *message);
|
||||
|
||||
int message_now(char *message);
|
||||
|
||||
int message_debug(char *message, int level);
|
||||
|
||||
int message_error(char *message);
|
||||
|
||||
int clear_error_message(void);
|
||||
|
||||
int read_log_file(char *log_file);
|
||||
|
||||
int read_domain_file(char *domain_file);
|
||||
|
||||
int read_domain_dmde_file(char *dmde_file);
|
||||
|
||||
int add_to_domain(long long position, long long size);
|
||||
|
||||
int insert_domain_line(int line, long long position, long long size, long long status);
|
||||
|
||||
int find_domain_block(long long position);
|
||||
|
||||
int delete_domain_line(int line);
|
||||
|
||||
gint reload_file(void);
|
||||
|
||||
void set_autoupdate_timer(GtkWidget *w, gpointer data);
|
||||
|
||||
void toggle_showbad(GtkWidget *w, gpointer data);
|
||||
|
||||
void toggle_showgood(GtkWidget *w, gpointer data);
|
||||
|
||||
void set_show_timing(GtkWidget *w, gpointer data);
|
||||
|
||||
void toggle_showdomain(GtkWidget *w, gpointer data);
|
||||
|
||||
int check_log(void);
|
||||
|
||||
void select_file(void);
|
||||
|
||||
void select_domain(void);
|
||||
|
||||
void select_dmde_domain(void);
|
||||
|
||||
static void file_ok_sel(GtkWidget *w, GtkFileSelection *fs);
|
||||
|
||||
static void domain_ok_sel(GtkWidget *w, GtkFileSelection *fs);
|
||||
|
||||
static void dmde_domain_ok_sel(GtkWidget *w, GtkFileSelection *fs);
|
||||
|
||||
void get_rgb_color(int color);
|
||||
|
||||
int get_color_from_status(int status_bits);
|
||||
|
||||
int get_block_status(long long position, long long size);
|
||||
|
||||
int get_block_timing(long long position, long long size);
|
||||
|
||||
int get_block_information(long long position, long long size);
|
||||
|
||||
int process_domain(long long position, int size, int status, int status_mask);
|
||||
|
||||
int find_block(long long position);
|
||||
|
||||
int process_status(int line);
|
||||
|
||||
long long process_information(long long position, long long size, int line);
|
||||
|
||||
int do_nanosleep(unsigned long long time);
|
||||
|
||||
int set_language(void);
|
||||
|
||||
int print_gui_error_message(char *message, char *title, int type);
|
||||
|
||||
void export_language_file(void);
|
||||
|
||||
static void file_export_sel(GtkWidget *w, GtkFileSelection *fs);
|
||||
|
||||
void import_language_file(void);
|
||||
|
||||
static void file_import_sel(char *import_file);
|
||||
|
||||
int translate_all(void);
|
||||
|
||||
int translate_language(char *fromlang, char *translang, char *language, char *native);
|
||||
|
||||
int translate_language_slow(char *fromlang, char *translang, char *language, char *native);
|
||||
|
||||
char *get_translated_data(char *url_data);
|
||||
|
||||
struct MemoryStruct
|
||||
{
|
||||
char *memory;
|
||||
size_t size;
|
||||
};
|
||||
|
||||
char *languages[] = {
|
||||
// "Afrikaans","af","Afrikaans",
|
||||
// "Albanian","sq","shqiptar",
|
||||
// "Amharic","am","አማርኛ",
|
||||
"Arabic", "ar", "عربى",
|
||||
// "Armenian","hy","հայերեն",
|
||||
// "Azeerbaijani","az","Azeerbaijani",
|
||||
// "Basque","eu","Euskal",
|
||||
// "Belarusian","be","беларускі",
|
||||
// "Bengali","bn","বাঙালি",
|
||||
// "Bosnian","bs","bosanski",
|
||||
// "Bulgarian","bg","български",
|
||||
// "Catalan","ca","català",
|
||||
// "Cebuano","ceb","Cebuano",
|
||||
// "Chichewa","ny","Chichewa",
|
||||
"Chinese (Simplified)", "zh-CN", "简体中文)",
|
||||
// "Chinese (Traditional)","zh-TW","中國傳統的)",
|
||||
// "Corsican","co","Corsu",
|
||||
// "Croatian","hr","hrvatski",
|
||||
// "Czech","cs","čeština",
|
||||
// "Danish","da","dansk",
|
||||
// "Dutch","nl","Nederlands",
|
||||
// "Esperanto","eo","Esperanto",
|
||||
// "Estonian","et","eesti",
|
||||
// "Filipino","tl","Pilipino",
|
||||
// "Finnish","fi","Suomalainen",
|
||||
"French", "fr", "français",
|
||||
// "Frisian","fy","Frysk",
|
||||
// "Galician","gl","galego",
|
||||
// "Georgian","ka","ქართული",
|
||||
"German", "de", "Deutsche",
|
||||
// "Greek","el","Ελληνικά",
|
||||
// "Gujarati","gu","ગુજરાતી",
|
||||
// "Haitian Creole","ht","kreyòl ayisyen",
|
||||
// "Hausa","ha","Hausa",
|
||||
// "Hawaiian","haw","ʻŌlelo Hawaiʻi",
|
||||
// "Hebrew","iw","עִברִית",
|
||||
"Hindi", "hi", "हिंदी",
|
||||
// "Hmong","hmn","Hmong",
|
||||
// "Hungarian","hu","Magyar",
|
||||
// "Icelandic","is","icelandic",
|
||||
// "Igbo","ig","Igbo",
|
||||
"Indonesian", "id", "bahasa Indonesia",
|
||||
// "Irish","ga","Gaeilge",
|
||||
"Italian", "it", "italiano",
|
||||
"Japanese", "ja", "日本語",
|
||||
// "Javanese","jw","Jawa",
|
||||
// "Kannada","kn","ಕನ್ನಡ",
|
||||
// "Kazakh","kk","Қазақ",
|
||||
// "Khmer","km","ភាសាខ្មែរ",
|
||||
// "Korean","ko","한국어",
|
||||
// "Kurdish","ku","Kurdî",
|
||||
// "Kyrgyz","ky","Кыргызча",
|
||||
// "Lao","lo","ລາວ",
|
||||
// "Latin","la","Latine",
|
||||
// "Latvian","lv","Latvijas",
|
||||
// "Lithuanian","lt","Lietuvos",
|
||||
// "Luxembourgish","lb","lëtzebuergesch",
|
||||
// "Macedonian","mk","Македонски",
|
||||
// "Malagasy","mg","Malagasy",
|
||||
// "Malay","ms","Malay",
|
||||
// "Malayalam","ml","മലയാളം",
|
||||
// "Maltese","mt","Malti",
|
||||
// "Maori","mi","Maori",
|
||||
// "Marathi","mr","मराठी",
|
||||
// "Mongolian","mn","Монгол",
|
||||
// "Burmese","my","မြန်မာ",
|
||||
// "Nepali","ne","नेपाली",
|
||||
// "Norwegian","no","norsk",
|
||||
// "Pashto","ps","پښتو",
|
||||
// "Persian","fa","فارسی",
|
||||
// "Polish","pl","Polskie",
|
||||
"Portuguese", "pt", "Português",
|
||||
// "Punjabi","pa","ਪੰਜਾਬੀ",
|
||||
// "Romanian","ro","Română",
|
||||
"Russian", "ru", "русский",
|
||||
// "Samoan","sm","Samoa",
|
||||
// "Scots Gaelic","gd","Gàidhlig",
|
||||
// "Serbian","sr","Српски",
|
||||
// "Sesotho","st","Sesotho",
|
||||
// "Shona","sn","Shona",
|
||||
// "Sindhi","sd","سنڌي",
|
||||
// "Sinhala","si","සිංහල",
|
||||
// "Slovak","sk","slovenský",
|
||||
// "Slovenian","sl","slovenski",
|
||||
// "Somali","so","Soomaali",
|
||||
"Spanish", "es", "Español",
|
||||
// "Sundanese","su","Sunda",
|
||||
// "Swahili","sw","Kiswahili",
|
||||
// "Swedish","sv","svenska",
|
||||
// "Tajik","tg","Тоҷикистон",
|
||||
// "Tamil","ta","தமிழ்",
|
||||
// "Telugu","te","తెలుగు",
|
||||
// "Thai","th","ไทย",
|
||||
// "Turkish","tr","Türk",
|
||||
// "Ukrainian","uk","український",
|
||||
// "Urdu","ur","اردو",
|
||||
// "Uzbek","uz","O'zbekiston",
|
||||
// "Vietnamese","vi","Tiếng Việt",
|
||||
// "Welsh","cy","Cymraeg",
|
||||
// "Xhosa","xh","isiXhosa",
|
||||
// "Yiddish","yi","ייִדיש",
|
||||
// "Yoruba","yo","yorùbá",
|
||||
// "Zulu","zu","Zulu"
|
||||
};
|
||||
|
||||
#define n_languages (sizeof(languages) / sizeof(const char *))
|
||||
@@ -1,847 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<interface>
|
||||
<!-- interface-requires gtk+ 3.10 -->
|
||||
<!-- interface-naming-policy toplevel-contextual -->
|
||||
<object class="GtkWindow" id="main_window">
|
||||
<property name="can_focus">False</property>
|
||||
<property name="border_width">2</property>
|
||||
<child>
|
||||
<object class="GtkVBox" id="vbox1">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<child>
|
||||
<object class="GtkMenuBar" id="menubar1">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<child>
|
||||
<object class="GtkMenuItem" id="filemi">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="label" translatable="yes">file</property>
|
||||
<property name="use_underline">True</property>
|
||||
<child type="submenu">
|
||||
<object class="GtkMenu" id="menu4">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<child>
|
||||
<object class="GtkMenuItem" id="openmi">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="label" translatable="yes">open</property>
|
||||
<property name="use_underline">True</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkSeparatorMenuItem" id="separatormenuitem1">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkMenuItem" id="domainmi">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="label" translatable="yes">domain</property>
|
||||
<property name="use_underline">True</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkMenuItem" id="dmdedomainmi">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="label" translatable="yes">dmde domain</property>
|
||||
<property name="use_underline">True</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkSeparatorMenuItem" id="separatormenuitem2">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkMenuItem" id="quitmi">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="label" translatable="yes">quit</property>
|
||||
<property name="use_underline">True</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkMenuItem" id="optionsmi">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="label" translatable="yes">options</property>
|
||||
<property name="use_underline">True</property>
|
||||
<child type="submenu">
|
||||
<object class="GtkMenu" id="menu5">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<child>
|
||||
<object class="GtkMenuItem" id="leftresolutionmi">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="label" translatable="yes">left panel resolution</property>
|
||||
<property name="use_underline">True</property>
|
||||
<child type="submenu">
|
||||
<object class="GtkMenu" id="menu6">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<child>
|
||||
<object class="GtkRadioMenuItem" id="leftresbutton1">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="label" translatable="yes">1pt</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="draw_as_radio">True</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkRadioMenuItem" id="leftresbutton2">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="label" translatable="yes">2pt</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="active">True</property>
|
||||
<property name="draw_as_radio">True</property>
|
||||
<property name="group">leftresbutton1</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkRadioMenuItem" id="leftresbutton3">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="label" translatable="yes">3pt</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="draw_as_radio">True</property>
|
||||
<property name="group">leftresbutton1</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkRadioMenuItem" id="leftresbutton4">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="label" translatable="yes">4pt</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="draw_as_radio">True</property>
|
||||
<property name="group">leftresbutton1</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkMenuItem" id="mainresolutionmi">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="label" translatable="yes">main panel resolution</property>
|
||||
<property name="use_underline">True</property>
|
||||
<child type="submenu">
|
||||
<object class="GtkMenu" id="menu7">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<child>
|
||||
<object class="GtkRadioMenuItem" id="mainresbutton4">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="label" translatable="yes">4pt</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="draw_as_radio">True</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkRadioMenuItem" id="mainresbutton6">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="label" translatable="yes">6pt</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="draw_as_radio">True</property>
|
||||
<property name="group">mainresbutton4</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkRadioMenuItem" id="mainresbutton8">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="label" translatable="yes">8pt</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="active">True</property>
|
||||
<property name="draw_as_radio">True</property>
|
||||
<property name="group">mainresbutton4</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkRadioMenuItem" id="mainresbutton10">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="label" translatable="yes">10pt</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="draw_as_radio">True</property>
|
||||
<property name="group">mainresbutton4</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkRadioMenuItem" id="mainresbutton12">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="label" translatable="yes">12pt</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="draw_as_radio">True</property>
|
||||
<property name="group">mainresbutton4</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkRadioMenuItem" id="mainresbutton14">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="label" translatable="yes">14pt</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="draw_as_radio">True</property>
|
||||
<property name="group">mainresbutton4</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkRadioMenuItem" id="mainresbutton16">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="label" translatable="yes">16pt</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="draw_as_radio">True</property>
|
||||
<property name="group">mainresbutton4</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkMenuItem" id="maingridsizemi">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="label" translatable="yes">main grid size</property>
|
||||
<property name="use_underline">True</property>
|
||||
<child type="submenu">
|
||||
<object class="GtkMenu" id="menu8">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<child>
|
||||
<object class="GtkRadioMenuItem" id="mainsizebutton4k">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="label" translatable="yes">4k</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="draw_as_radio">True</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkRadioMenuItem" id="mainsizebutton8k">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="label" translatable="yes">8k</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="draw_as_radio">True</property>
|
||||
<property name="group">mainsizebutton4k</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkRadioMenuItem" id="mainsizebutton16k">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="label" translatable="yes">16k</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="draw_as_radio">True</property>
|
||||
<property name="group">mainsizebutton4k</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkRadioMenuItem" id="mainsizebutton32k">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="label" translatable="yes">32k</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="draw_as_radio">True</property>
|
||||
<property name="group">mainsizebutton4k</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkRadioMenuItem" id="mainsizebutton64k">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="label" translatable="yes">64k</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="active">True</property>
|
||||
<property name="draw_as_radio">True</property>
|
||||
<property name="group">mainsizebutton4k</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkRadioMenuItem" id="mainsizebutton128k">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="label" translatable="yes">128k</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="draw_as_radio">True</property>
|
||||
<property name="group">mainsizebutton4k</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkRadioMenuItem" id="mainsizebutton256k">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="label" translatable="yes">256k</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="draw_as_radio">True</property>
|
||||
<property name="group">mainsizebutton4k</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkRadioMenuItem" id="mainsizebutton512k">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="label" translatable="yes">512k</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="draw_as_radio">True</property>
|
||||
<property name="group">mainsizebutton4k</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkRadioMenuItem" id="mainsizebutton1m">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="label" translatable="yes">1m</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="draw_as_radio">True</property>
|
||||
<property name="group">mainsizebutton4k</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkRadioMenuItem" id="mainsizebutton2m">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="label" translatable="yes">2m</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="draw_as_radio">True</property>
|
||||
<property name="group">mainsizebutton4k</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkRadioMenuItem" id="mainsizebutton4m">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="label" translatable="yes">4m</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="draw_as_radio">True</property>
|
||||
<property name="group">mainsizebutton4k</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkRadioMenuItem" id="mainsizebutton8m">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="label" translatable="yes">8m</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="draw_as_radio">True</property>
|
||||
<property name="group">mainsizebutton4k</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkRadioMenuItem" id="mainsizebutton16m">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="label" translatable="yes">16m</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="draw_as_radio">True</property>
|
||||
<property name="group">mainsizebutton4k</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkMenuItem" id="autoupdatemi">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="label" translatable="yes">auto update</property>
|
||||
<property name="use_underline">True</property>
|
||||
<child type="submenu">
|
||||
<object class="GtkMenu" id="menu9">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<child>
|
||||
<object class="GtkRadioMenuItem" id="autoupdatebuttonoff">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="label" translatable="yes">off</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="active">True</property>
|
||||
<property name="draw_as_radio">True</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkRadioMenuItem" id="autoupdatebutton5s">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="label" translatable="yes">5s</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="draw_as_radio">True</property>
|
||||
<property name="group">autoupdatebuttonoff</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkRadioMenuItem" id="autoupdatebutton10s">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="label" translatable="yes">10s</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="draw_as_radio">True</property>
|
||||
<property name="group">autoupdatebuttonoff</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkRadioMenuItem" id="autoupdatebutton30s">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="label" translatable="yes">30s</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="draw_as_radio">True</property>
|
||||
<property name="group">autoupdatebuttonoff</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkRadioMenuItem" id="autoupdatebutton1m">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="label" translatable="yes">1m</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="draw_as_radio">True</property>
|
||||
<property name="group">autoupdatebuttonoff</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkRadioMenuItem" id="autoupdatebutton2m">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="label" translatable="yes">2m</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="draw_as_radio">True</property>
|
||||
<property name="group">autoupdatebuttonoff</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkRadioMenuItem" id="autoupdatebutton5m">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="label" translatable="yes">5m</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="draw_as_radio">True</property>
|
||||
<property name="group">autoupdatebuttonoff</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkCheckMenuItem" id="showgoodcheck">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="label" translatable="yes">show good data</property>
|
||||
<property name="use_underline">True</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkCheckMenuItem" id="showbadcheck">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="label" translatable="yes">show bad head</property>
|
||||
<property name="use_underline">True</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkMenuItem" id="showtimemi">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="label" translatable="yes">show timing</property>
|
||||
<property name="use_underline">True</property>
|
||||
<child type="submenu">
|
||||
<object class="GtkMenu" id="menu1">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<child>
|
||||
<object class="GtkRadioMenuItem" id="showtimingbuttonoff">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="label" translatable="yes">off</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="active">True</property>
|
||||
<property name="draw_as_radio">True</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkRadioMenuItem" id="showtimingbutton1">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="label" translatable="yes">1</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="draw_as_radio">True</property>
|
||||
<property name="group">showtimingbuttonoff</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkRadioMenuItem" id="showtimingbutton2">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="label" translatable="yes">2</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="draw_as_radio">True</property>
|
||||
<property name="group">showtimingbuttonoff</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkRadioMenuItem" id="showtimingbutton3">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="label" translatable="yes">3</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="draw_as_radio">True</property>
|
||||
<property name="group">showtimingbuttonoff</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkRadioMenuItem" id="showtimingbutton4">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="label" translatable="yes">4</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="draw_as_radio">True</property>
|
||||
<property name="group">showtimingbuttonoff</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkRadioMenuItem" id="showtimingbutton5">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="label" translatable="yes">5</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="draw_as_radio">True</property>
|
||||
<property name="group">showtimingbuttonoff</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkRadioMenuItem" id="showtimingbutton7">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="label" translatable="yes">7</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="draw_as_radio">True</property>
|
||||
<property name="group">showtimingbuttonoff</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkRadioMenuItem" id="showtimingbutton10">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="label" translatable="yes">10</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="draw_as_radio">True</property>
|
||||
<property name="group">showtimingbuttonoff</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkRadioMenuItem" id="showtimingbutton15">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="label" translatable="yes">15</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="draw_as_radio">True</property>
|
||||
<property name="group">showtimingbuttonoff</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkRadioMenuItem" id="showtimingbutton20">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="label" translatable="yes">20</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="draw_as_radio">True</property>
|
||||
<property name="group">showtimingbuttonoff</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkRadioMenuItem" id="showtimingbutton25">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="label" translatable="yes">25</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="draw_as_radio">True</property>
|
||||
<property name="group">showtimingbuttonoff</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkRadioMenuItem" id="showtimingbutton30">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="label" translatable="yes">30</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="draw_as_radio">True</property>
|
||||
<property name="group">showtimingbuttonoff</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkRadioMenuItem" id="showtimingbutton40">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="label" translatable="yes">40</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="draw_as_radio">True</property>
|
||||
<property name="group">showtimingbuttonoff</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkRadioMenuItem" id="showtimingbutton50">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="label" translatable="yes">50</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="draw_as_radio">True</property>
|
||||
<property name="group">showtimingbuttonoff</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkRadioMenuItem" id="showtimingbutton60">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="label" translatable="yes">60</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="draw_as_radio">True</property>
|
||||
<property name="group">showtimingbuttonoff</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkCheckMenuItem" id="showdomaincheck">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="label" translatable="yes">show domain</property>
|
||||
<property name="use_underline">True</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel" id="progress_log_label">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="xalign">0</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel" id="domain_log_label">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="xalign">0</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">2</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkHBox" id="main_hbox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<child>
|
||||
<object class="GtkVBox" id="left_vbox">
|
||||
<property name="width_request">100</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="border_width">2</property>
|
||||
<child>
|
||||
<object class="GtkDrawingArea" id="left_drawing_area">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">True</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkVBox" id="right_vbox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="border_width">2</property>
|
||||
<child>
|
||||
<object class="GtkHBox" id="top_hbox">
|
||||
<property name="height_request">100</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="border_width">2</property>
|
||||
<child>
|
||||
<object class="GtkHBox" id="top_info_box">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="border_width">2</property>
|
||||
<child>
|
||||
<object class="GtkScrolledWindow" id="scrolledwindow1">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="hscrollbar_policy">automatic</property>
|
||||
<property name="vscrollbar_policy">automatic</property>
|
||||
<child>
|
||||
<object class="GtkViewport" id="viewport2">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<child>
|
||||
<object class="GtkFixed" id="fixed1">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<child>
|
||||
<object class="GtkVBox" id="vbox2">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<child>
|
||||
<object class="GtkLabel" id="block_information_label">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="xalign">0</property>
|
||||
<property name="yalign">0</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">True</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="x">2</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">True</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">True</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkDrawingArea" id="top_drawing_area">
|
||||
<property name="width_request">400</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkVBox" id="main_drawing_vbox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<child>
|
||||
<object class="GtkScrolledWindow" id="main_scrolled_window">
|
||||
<property name="width_request">400</property>
|
||||
<property name="height_request">300</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="hscrollbar_policy">automatic</property>
|
||||
<property name="vscrollbar_policy">automatic</property>
|
||||
<child>
|
||||
<object class="GtkViewport" id="viewport1">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<child>
|
||||
<object class="GtkDrawingArea" id="main_drawing_area">
|
||||
<property name="width_request">200</property>
|
||||
<property name="height_request">200</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">True</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">True</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">True</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">True</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">3</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</interface>
|
||||
Reference in New Issue
Block a user