1
0
mirror of git://projects.qi-hardware.com/eda-tools.git synced 2024-11-22 20:45:55 +02:00

eeshow/: add online help with h or ? (WIP)

This commit is contained in:
Werner Almesberger 2016-08-19 14:17:00 -03:00
parent e72d476e71
commit ebbb986768
6 changed files with 144 additions and 3 deletions

View File

@ -16,6 +16,7 @@ OBJS = main.o \
kicad/lib-render.o kicad/dwg.o kicad/delta.o \ kicad/lib-render.o kicad/dwg.o kicad/delta.o \
gui/gui.o gui/over.o gui/style.o gui/aoi.o gui/fmt-pango.o gui/input.o \ gui/gui.o gui/over.o gui/style.o gui/aoi.o gui/fmt-pango.o gui/input.o \
gui/progress.o gui/glabel.o gui/sheet.o gui/history.o gui/render.o \ gui/progress.o gui/glabel.o gui/sheet.o gui/history.o gui/render.o \
gui/help.o \
file/file.o file/git-util.o file/git-file.o file/git-hist.o \ file/file.o file/git-util.o file/git-file.o file/git-hist.o \
gfx/style.o gfx/fig.o gfx/record.o gfx/cro.o gfx/diff.o gfx/gfx.o \ gfx/style.o gfx/fig.o gfx/record.o gfx/cro.o gfx/diff.o gfx/gfx.o \
gfx/text.o gfx/misc.o \ gfx/text.o gfx/misc.o \
@ -26,11 +27,13 @@ CFLAGS = -g -Wall -Wextra -Wno-unused-parameter -Wshadow \
-I. \ -I. \
`pkg-config --cflags cairo` \ `pkg-config --cflags cairo` \
`pkg-config --cflags libgit2` \ `pkg-config --cflags libgit2` \
`pkg-config --cflags gtk+-3.0` `pkg-config --cflags gtk+-3.0` \
`pkg-config --cflags webkit2gtk-3.0`
LDLIBS = -lm \ LDLIBS = -lm \
`pkg-config --libs cairo` \ `pkg-config --libs cairo` \
`pkg-config --libs libgit2` \ `pkg-config --libs libgit2` \
`pkg-config --libs gtk+-3.0` `pkg-config --libs gtk+-3.0` \
`pkg-config --libs webkit2gtk-3.0`
include ../common/Makefile.c-common include ../common/Makefile.c-common
@ -41,6 +44,14 @@ all:: $(NAME)
$(NAME): $(OBJS) $(NAME): $(OBJS)
$(CC) -o $(NAME) $(OBJS) $(LDLIBS) $(CC) -o $(NAME) $(OBJS) $(LDLIBS)
help.inc: help.html
$(BUILD) sed 's/.*/"&"/' $< >$@ || { rm -f $@; exit 1; }
gui/help.c: help.inc
clean::
rm -f help.inc
#----- Test sheet ------------------------------------------------------------- #----- Test sheet -------------------------------------------------------------
sch: sch:

View File

@ -25,6 +25,7 @@ Prerequisites
libcairo2-dev libcairo2-dev
libgit2-dev libgit2-dev
libgtk-3-dev libgtk-3-dev
ibwebkit2gtk-3.0-dev
Development status Development status
@ -45,7 +46,6 @@ many limitations, especially in the following areas:
More details on pending items can be found in the file TODO. More details on pending items can be found in the file TODO.
Non-interactive rendering Non-interactive rendering
========================= =========================
@ -175,6 +175,7 @@ PgUp go to the previous sheet in sequence
PgDn go to the next sheet in sequence PgDn go to the next sheet in sequence
Up or Down invoke the revision history (WIP) Up or Down invoke the revision history (WIP)
Tab toggle between old and new revision Tab toggle between old and new revision
? or H show/hide help window
D when comparing revisions, show difference (default) D when comparing revisions, show difference (default)
N show newer sheet N show newer sheet
O show older sheet O show older sheet

57
eeshow/gui/help.c Normal file
View File

@ -0,0 +1,57 @@
/*
* gui/help.c - Online help
*
* Written 2016 by Werner Almesberger
* Copyright 2016 by Werner Almesberger
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*/
#include <stdbool.h>
#include <gtk/gtk.h>
#include <webkit2/webkit2.h>
#include "gui/help.h"
static GtkWidget *window = NULL;
static bool visible;
static void new_help_window(void)
{
GtkWidget *view;
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
view = webkit_web_view_new();
gtk_container_add(GTK_CONTAINER(window), view);
gtk_widget_show_all(window);
webkit_web_view_load_html(WEBKIT_WEB_VIEW(view),
#include "../help.inc"
, NULL);
g_signal_connect(window, "destroy",
G_CALLBACK(gtk_main_quit), NULL);
gtk_widget_show_all(window);
}
void help(void)
{
if (!window) {
new_help_window();
visible = 1;
} else {
visible = !visible;
if (visible)
gtk_widget_show(window);
else
gtk_widget_hide(window);
}
}

18
eeshow/gui/help.h Normal file
View File

@ -0,0 +1,18 @@
/*
* gui/help.h - Online help
*
* Written 2016 by Werner Almesberger
* Copyright 2016 by Werner Almesberger
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*/
#ifndef GUI_HELP_H
#define GUI_HELP_H
void help(void);
#endif /* !GUI_HELP_H */

View File

@ -24,6 +24,7 @@
#include "gui/aoi.h" #include "gui/aoi.h"
#include "gui/over.h" #include "gui/over.h"
#include "gui/input.h" #include "gui/input.h"
#include "gui/help.h"
#include "gui/common.h" #include "gui/common.h"
@ -515,6 +516,11 @@ static void sheet_key(void *user, int x, int y, int keyval)
redraw(ctx); redraw(ctx);
break; break;
case GDK_KEY_h:
case GDK_KEY_question:
help();
break;
case GDK_KEY_q: case GDK_KEY_q:
gtk_main_quit(); gtk_main_quit();
} }

48
eeshow/help.html Normal file
View File

@ -0,0 +1,48 @@
<HTML>
<HEAD><TITLE>Eeshow help</TITLE></HEAD>
<H1>Key functions in GUI mode</H1>
<TABLE>
<TR>
<TD>+ or =
<TD>zoom in
<TR>
<TD>-
<TD>zoom out
<TR>
<TD>*
<TD>zoom to extents
<TR>
<TD>Home
<TD>go to the top sheet
<TR>
<TD>Delete or Backspace
<TD>go to the next higher sheet in hierarchy
<TR>
<TD>PgUp
<TD>go to the previous sheet in sequence
<TR>
<TD>PgDn
<TD>go to the next sheet in sequence
<TR>
<TD>Tab
<TD>toggle between old and new revision
<TR>
<TD>? or H
<TD>open/close help window
<TR>
<TD>D
<TD>when comparing revisions, show difference
<TR>
<TD>N
<TD>show newer sheet
<TR>
<TD>O
<TD>show older sheet
<TR>
<TD>Q
<TD>quit the vieweer
</TABLE>
</BODY>
</HTML>