add more features
This commit is contained in:
parent
63236f9e36
commit
5c9cda563c
@ -1,4 +1,4 @@
|
|||||||
CFLAGS = -g `pkg-config --cflags gtk4` `pkg-config --libs gtk4`
|
CFLAGS = -g -DGTK4=1 `pkg-config --cflags gtk4` `pkg-config --libs gtk4`
|
||||||
RM = rm -f
|
RM = rm -f
|
||||||
TARGETS = bitch
|
TARGETS = bitch
|
||||||
|
|
||||||
|
45
bitch/bitch.1
Normal file
45
bitch/bitch.1
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
.TH BITCH 1
|
||||||
|
|
||||||
|
.SH NAME
|
||||||
|
|
||||||
|
bitch \(en a pretty interface from which to select tasks
|
||||||
|
|
||||||
|
.SH SYNOPSIS
|
||||||
|
|
||||||
|
bitch
|
||||||
|
.RB ( -rx )
|
||||||
|
.RB [ -h
|
||||||
|
.BR horizontal ]
|
||||||
|
.RB [ -v
|
||||||
|
.BR vertical ]
|
||||||
|
|
||||||
|
.SH GRAPHICS
|
||||||
|
|
||||||
|
Bitch is written for the GNU Image Manipulation Program's Graphical Toolkit 4.
|
||||||
|
A windowing system is required to use bitch.
|
||||||
|
|
||||||
|
.SH DESCRIPTION
|
||||||
|
|
||||||
|
Bitch reads a list of newline-delimited items from standard input and presents a menu with the options.
|
||||||
|
.PP
|
||||||
|
With the
|
||||||
|
.B -x
|
||||||
|
option, bitch will eXit when the first item is chosen, otherwise bitch will print or execute subsequent selections.
|
||||||
|
.PP
|
||||||
|
With the
|
||||||
|
.B -r
|
||||||
|
option, bitch will execute the selected item with system(3). Otherwise, bitch will print the selection text.
|
||||||
|
.PP
|
||||||
|
The window bitch presents will be of the horizontal and vertical resolution specified with
|
||||||
|
.B -h
|
||||||
|
and
|
||||||
|
.B -v
|
||||||
|
respectively.
|
||||||
|
|
||||||
|
.SH BUGS
|
||||||
|
|
||||||
|
He who calls bitches bitches gets no bitches.
|
||||||
|
|
||||||
|
.SH COPYRIGHT
|
||||||
|
|
||||||
|
Public domain.
|
@ -1,36 +1,77 @@
|
|||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h> /* stderr, atoi(3) */
|
||||||
|
#include <sysexits.h> /* EX_USAGE */
|
||||||
|
#include <unistd.h> /* getopt(3) */
|
||||||
|
|
||||||
/* Written for Gtk4 */
|
/* Written for Gtk4 */
|
||||||
#include <gtk/gtk.h>
|
#ifdef GTK4
|
||||||
|
# include <gtk/gtk.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
#define BUF 100
|
#define BUF 100
|
||||||
|
|
||||||
/* Pinephone dimensions */
|
/* Pinephone dimensions as default */
|
||||||
#define DEFAULT_H 720
|
static unsigned int h = 720;
|
||||||
#define DEFAULT_V 1440
|
static unsigned int v = 1440;
|
||||||
|
|
||||||
static char *argv0;
|
static char *argv0;
|
||||||
static char buf[BUF];
|
static char buf[BUF];
|
||||||
|
static char f;
|
||||||
|
static unsigned char shy = 0;
|
||||||
|
|
||||||
|
static char *fake_argv[2] = { NULL, NULL };
|
||||||
|
|
||||||
|
#ifdef GTK4
|
||||||
|
static GtkApplication *app;
|
||||||
|
|
||||||
static void activate(GtkApplication *app, gpointer user_data);
|
static void activate(GtkApplication *app, gpointer user_data);
|
||||||
static void button_pressed(GtkWidget *button, gpointer data);
|
static void button_pressed(GtkWidget *button, gpointer data);
|
||||||
|
#endif
|
||||||
|
|
||||||
int main(int argc, char *argv[]){
|
int main(int argc, char *argv[]){
|
||||||
GtkApplication *app;
|
int c;
|
||||||
|
extern char *optarg;
|
||||||
int status;
|
int status;
|
||||||
|
|
||||||
argv0 = argv[0];
|
argv0 = argv[0];
|
||||||
|
fake_argv[0] = argv0;
|
||||||
|
|
||||||
|
while((c = getopt(argc, argv, "h:rv:x")) != -1)
|
||||||
|
switch(c){
|
||||||
|
case 'h':
|
||||||
|
h = atoi(optarg);
|
||||||
|
break;
|
||||||
|
case 'r':
|
||||||
|
f = 'r';
|
||||||
|
break;
|
||||||
|
case 'v':
|
||||||
|
v = atoi(optarg);
|
||||||
|
break;
|
||||||
|
case 'x':
|
||||||
|
shy = 1;
|
||||||
|
break;
|
||||||
|
default: usage:
|
||||||
|
fprintf(stderr, "\
|
||||||
|
Usage: %s (-rx)\n\
|
||||||
|
\t(-h [horizontal resolution]) (-v [vertical resolution])\n",
|
||||||
|
argv0
|
||||||
|
);
|
||||||
|
return EX_USAGE;
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifdef GTK4
|
||||||
app = gtk_application_new(
|
app = gtk_application_new(
|
||||||
"org.trinity.femaledog", G_APPLICATION_FLAGS_NONE
|
"org.trinity.femaledog", G_APPLICATION_FLAGS_NONE
|
||||||
);
|
);
|
||||||
g_signal_connect(app, "activate", G_CALLBACK(activate), NULL);
|
g_signal_connect(app, "activate", G_CALLBACK(activate), NULL);
|
||||||
status = g_application_run(G_APPLICATION(app), argc, argv);
|
status = g_application_run(G_APPLICATION(app), 1, fake_argv);
|
||||||
g_object_unref(app);
|
g_object_unref(app);
|
||||||
|
#endif
|
||||||
|
|
||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef GTK4
|
||||||
static void
|
static void
|
||||||
activate(GtkApplication *app, gpointer user_data){
|
activate(GtkApplication *app, gpointer user_data){
|
||||||
GtkWidget *box;
|
GtkWidget *box;
|
||||||
@ -41,7 +82,7 @@ activate(GtkApplication *app, gpointer user_data){
|
|||||||
|
|
||||||
window = gtk_application_window_new(app);
|
window = gtk_application_window_new(app);
|
||||||
gtk_window_set_title(GTK_WINDOW(window), "Bitch");
|
gtk_window_set_title(GTK_WINDOW(window), "Bitch");
|
||||||
gtk_window_set_default_size(GTK_WINDOW(window), DEFAULT_H, DEFAULT_V);
|
gtk_window_set_default_size(GTK_WINDOW(window), h, v);
|
||||||
|
|
||||||
box = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);
|
box = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);
|
||||||
gtk_widget_set_halign(box, GTK_ALIGN_CENTER);
|
gtk_widget_set_halign(box, GTK_ALIGN_CENTER);
|
||||||
@ -73,8 +114,18 @@ activate(GtkApplication *app, gpointer user_data){
|
|||||||
static void
|
static void
|
||||||
button_pressed(GtkWidget *button, gpointer data){
|
button_pressed(GtkWidget *button, gpointer data){
|
||||||
|
|
||||||
|
switch(f){
|
||||||
|
case 'w':
|
||||||
|
g_print("%s\n", gtk_button_get_label(GTK_BUTTON(button)));
|
||||||
|
break;
|
||||||
|
case 'x':
|
||||||
system(gtk_button_get_label(GTK_BUTTON(button)));
|
system(gtk_button_get_label(GTK_BUTTON(button)));
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if(shy)
|
||||||
|
g_application_quit(G_APPLICATION(app));
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
7
dist/Makefile
vendored
7
dist/Makefile
vendored
@ -6,6 +6,13 @@ bin:
|
|||||||
share/man/man1:
|
share/man/man1:
|
||||||
mkdir -p share/man/man1
|
mkdir -p share/man/man1
|
||||||
|
|
||||||
|
.PHONY: bitch
|
||||||
|
bitch: bin/bitch
|
||||||
|
bin/bitch: bin ../bitch/bitch
|
||||||
|
cp ../bitch/bitch bin/
|
||||||
|
../bitch/bitch:
|
||||||
|
$(MAKE) -C ../bitch
|
||||||
|
|
||||||
.PHONY: battery
|
.PHONY: battery
|
||||||
battery: bin/battery
|
battery: bin/battery
|
||||||
bin/battery: bin ../battery/battery
|
bin/battery: bin ../battery/battery
|
||||||
|
Loading…
Reference in New Issue
Block a user