Weee! gmc uses the gnome.m4 macros now and detects properly gnome installation - mig

This commit is contained in:
Miguel de Icaza 1998-03-20 02:54:06 +00:00
parent 442ad09caf
commit 09343b2393
15 changed files with 1356 additions and 115 deletions

63
aclocal.m4 vendored
View File

@ -1,4 +1,67 @@
dnl
dnl GNOME_INIT_HOOK (script-if-gnome-enabled, failflag)
dnl
dnl if failflag is "fail" then GNOME_INIT_HOOK will abort if gnomeConf.sh
dnl is not found.
dnl
AC_DEFUN([GNOME_INIT_HOOK],
[
AC_SUBST(GNOME_LIBS)
AC_SUBST(GNOMEUI_LIBS)
AC_SUBST(GTKXMHTML_LIBS)
AC_SUBST(GNOME_LIBDIR)
AC_SUBST(GNOME_INCLUDEDIR)
if test x$exec_prefix = xNONE; then
if test x$prefix = xNONE; then
gnome_prefix=$ac_default_prefix/lib
else
gnome_prefix=$prefix/lib
fi
else
gnome_prefix=`eval echo \`echo $libdir\``
fi
AC_ARG_WITH(gnome-includes,
[ --with-gnome-includes Specify location of GNOME headers],[
CFLAGS="$CFLAGS -I$withval"
])
AC_ARG_WITH(gnome-libs,
[ --with-gnome-libs Specify location of GNOME libs],[
LDFLAGS="$LDFLAGS -L$withval"
gnome_prefix=$withval
])
AC_ARG_WITH(gnome,
[ --with-gnome Specify prefix for GNOME files],[
if test x$withval = xyes; then
$1
else
LDFLAGS="$LDFLAGS -L$withval/lib"
CFLAGS="$CFLAGS -I$withval/include"
gnome_prefix=$withval/lib
fi
])
AC_MSG_CHECKING(for gnomeConf.sh file in $gnome_prefix)
if test -f $gnome_prefix/gnomeConf.sh; then
AC_MSG_RESULT(found)
echo "loading gnome configuration from $gnome_prefix/gnomeConf.sh"
. $gnome_prefix/gnomeConf.sh
$1
else
AC_MSG_RESULT(not found)
if test x$2 = xfail; then
AC_MSG_ERROR(Could not find the gnomeConf.sh file that is generated by gnome-libs install)
fi
fi
])
AC_DEFUN([GNOME_INIT],[
GNOME_INIT_HOOK([],fail)
])dnl
dnl XView & SlingShot library checking
dnl (c) 1995 Jakub Jelinek
dnl

View File

@ -1,88 +1,3 @@
#! /bin/sh
# Run this to generate all the initial makefiles, etc.
# Make it possible to specify path in the environment
: ${AUTOCONF=autoconf}
: ${AUTOHEADER=autoheader}
: ${AUTOMAKE=automake}
: ${ACLOCAL=aclocal}
: ${GETTEXTIZE=gettextize}
srcdir=`dirname $0`
test -z "$srcdir" && srcdir=.
(
cd $srcdir
# The autoconf cache (version after 2.52) is not reliable yet.
rm -rf autom4te.cache vfs/samba/autom4te.cache
# Ensure that gettext is reasonably new.
gettext_ver=`$GETTEXTIZE --version | sed -n '1s/\.//g;1s/.* //p'`
expr $gettext_ver '>=' 01038 >/dev/null
if test $? != 0; then
echo "Don't use gettext older than 0.10.38" 2>&1
exit 1
fi
rm -rf intl
$GETTEXTIZE --copy --force >tmpout || exit 1
rm -f po/ChangeLog
mv po/ChangeLog~ po/ChangeLog
if test ! -d config; then
mkdir config || exit 1
fi
rm -f aclocal.m4
if test -f `aclocal --print-ac-dir`/gettext.m4; then
: # gettext macro files are available to aclocal.
else
# gettext macro files are not available.
# Find them and copy to a local directory.
# Ugly way to parse the instructions gettexize gives us.
m4files="`cat tmpout | sed -n -e '/^Please/,/^from/s/^ *//p'`"
fromdir=`cat tmpout | sed -n -e '/^Please/,/^from/s/^from the \([^ ]*\) .*$/\1/p'`
rm tmpout
rm -rf gettext.m4
mkdir gettext.m4
for i in $m4files; do
cp -f $fromdir/$i gettext.m4
done
ACLOCAL_INCLUDES="-I gettext.m4"
fi
# Some old version of GNU build tools fail to set error codes.
# Check that they generate some of the files they should.
$ACLOCAL $ACLOCAL_INCLUDES $ACLOCAL_FLAGS || exit 1
test -f aclocal.m4 || \
{ echo "aclocal failed to generate aclocal.m4" 2>&1; exit 1; }
$AUTOHEADER || exit 1
test -f config.h.in || \
{ echo "autoheader failed to generate config.h.in" 2>&1; exit 1; }
$AUTOCONF || exit 1
test -f configure || \
{ echo "autoconf failed to generate configure" 2>&1; exit 1; }
# Workaround for Automake 1.5 to ensure that depcomp is distributed.
$AUTOMAKE -a src/Makefile || exit 1
$AUTOMAKE -a || exit 1
test -f Makefile.in || \
{ echo "automake failed to generate Makefile.in" 2>&1; exit 1; }
cd vfs/samba || exit 1
date -u >include/stamp-h.in
$AUTOHEADER || exit 1
test -f include/config.h.in || \
{ echo "autoheader failed to generate vfs/samba/include/config.h.in" 2>&1; exit 1; }
$AUTOCONF || exit 1
test -f configure || \
{ echo "autoconf failed to generate vfs/samba/configure" 2>&1; exit 1; }
) || exit 1
$srcdir/configure --cache-file=config.cache --enable-maintainer-mode "$@"
cat macros/gnome.m4 mc-aclocal.m4 > aclocal.m4
autoconf
./configure $*

View File

@ -657,20 +657,17 @@ dnl Check for Gnome
dnl
gmc=""
gmcdep=""
if test x$no_x != xyes; then
AC_ARG_WITH(gnome,[--with-gnome Compile the GNOME edition],[
if test x$withval = xyes; then
AC_SUBST(insticons)
GNOME_INIT_HOOK([
gmc=gmc
gmcdep=gmcdep
insticons=install_icons
AC_SUBST(insticons)
if test x"$xvers" = xnone; then
xvers="Gnome"
else
xvers="Gnome+$xvers"
fi
fi])
fi
])
AC_SUBST(gmc)
AC_SUBST(gmcdep)

View File

@ -1,3 +1,7 @@
1998-03-19 Miguel de Icaza <miguel@nuclecu.unam.mx>
* gscreen.c (display_mini_info): Implement mini status.
1998-03-19 Federico Mena Quintero <federico@nuclecu.unam.mx>
* gdesktop.c (get_transparent_window_for_dentry): New function,

View File

@ -5,8 +5,8 @@ rootdir = $(srcdir)/..
@MCFG@@MCF@
CFLAGS = $(XCFLAGS) @X_CFLAGS@
CPPFLAGS = $(XCPPFLAGS) -I$(vfsdir) -I$(slangdir) -DHAVE_X -DHAVE_GNOME
LDFLAGS = $(XLDFLAGS) @X_LIBS@
CPPFLAGS = $(XCPPFLAGS) -I$(vfsdir) -I$(slangdir) -DHAVE_X -DHAVE_GNOME @GNOME_INCLUDEDIR@
LDFLAGS = $(XLDFLAGS) @X_LIBS@ @GNOME_LIBDIR@ @GNOMEUI_LIBS@
DEFS = $(XDEFS)
LIBS = -lgnomeui -lgdk_imlib -lgnome -lgnomesupport -lgtk -lgdk -lglib @X_EXTRA_LIBS@ -lX11 @X_PRE_LIBS@ $(XLIBS) $(XLIB) @TERMNET@
EXTRALIBS = @LVFS@ @LSLANG@ @LEDIT@

View File

@ -26,6 +26,7 @@
#define PORT_HAS_DESTROY_CMD 1
#define PORT_HAS_RADIO_FOCUS_ITEM 1
#define PORT_HAS_DIALOG_STOP 1
#define PORT_HAS_DISPLAY_MINI_INFO 1
#define mi_getch() fprintf (stderr, "mi_getch is not implemented in this port\n")
#define frontend_run_dlg(x) gtkrundlg_event (x)

View File

@ -2,7 +2,6 @@ All:
- Intenrationalization
- It crashes
- It leaks objects.
- It does not object to leaks.
- argp handling.
- Session management
@ -12,7 +11,6 @@ Desktop:
Panels:
- Global bindings (some shortcuts are not implemented)
- Mini-info panel display
- Finish regular property pages
- Add a nifty toolbar
- Split view.

View File

@ -264,6 +264,8 @@ panel_file_list_configure_contents (GtkWidget *file_list, WPanel *panel, int mai
} else
extra_space = expand_space = 0;
panel->estimated_total = total_columns;
/* If we dont have enough space, shorten the fields */
if (used_columns > total_columns){
expand_space = 0;
@ -564,7 +566,6 @@ panel_file_list_compute_lines (GtkCList *file_list, WPanel *panel, int height)
static void
panel_file_list_size_allocate_hook (GtkWidget *file_list, GtkAllocation *allocation, WPanel *panel)
{
printf ("%d %d\n", allocation->width, allocation->height);
gtk_signal_handler_block_by_data (GTK_OBJECT (file_list), panel);
panel_file_list_configure_contents (file_list, panel, allocation->width, allocation->height);
gtk_signal_handler_unblock_by_data (GTK_OBJECT (file_list), panel);
@ -1077,6 +1078,62 @@ show_filter_popup (GtkWidget *button, gpointer data)
GDK_CURRENT_TIME);
}
void
display_mini_info (WPanel *panel)
{
GtkLabel *label = GTK_LABEL (panel->ministatus);
if (panel->searching){
char *str = copy_strings ("Search: ", panel->search_buffer, NULL);
gtk_label_set (label, str);
free (str);
return;
}
if (panel->marked){
char buffer [120];
sprintf (buffer, " %s bytes in %d files%s",
size_trunc_sep (panel->total), panel->marked,
panel->marked == 1 ? "" : "s");
gtk_label_set (label, buffer);
}
if (S_ISLNK (panel->dir.list [panel->selected].buf.st_mode)){
char *link, link_target [MC_MAXPATHLEN];
int len;
link = concat_dir_and_file (panel->cwd, panel->dir.list [panel->selected].fname);
len = mc_readlink (link, link_target, MC_MAXPATHLEN);
free (link);
if (len > 0){
char *str;
link_target [len] = 0;
str = copy_strings ("-> ", link_target, NULL);
gtk_label_set (label, str);
free (str);
} else
gtk_label_set (label, "<readlink failed>");
return;
}
if (panel->estimated_total){
int len = panel->estimated_total;
char *buffer;
buffer = xmalloc (len + 2, "display_mini_info");
format_file (buffer, panel, panel->selected, panel->estimated_total-2, 0, 1);
buffer [len] = 0;
gtk_label_set (label, buffer);
free (buffer);
}
}
static GtkWidget *
panel_create_filter (Dlg_head *h, WPanel *panel, GtkWidget **filter_w)
{
@ -1138,28 +1195,27 @@ void
x_create_panel (Dlg_head *h, widget_data parent, WPanel *panel)
{
GtkWidget *status_line, *filter, *statusbar, *vbox;
GtkWidget *ministatus_align;
panel->table = gtk_table_new (2, 1, 0);
gtk_widget_show (panel->table);
panel->list = panel_create_file_list (panel);
gtk_widget_show (panel->list);
panel->current_dir = panel_create_cwd (panel);
gtk_widget_show (panel->current_dir);
filter = panel_create_filter (h, panel, (GtkWidget **) &panel->filter_w);
gtk_widget_show (filter);
/* ministatus */
ministatus_align = gtk_alignment_new (0.0, 0.0, 1.0, 1.0);
panel->ministatus = gtk_label_new ("");
gtk_container_add (GTK_CONTAINER (ministatus_align), panel->ministatus);
status_line = gtk_hbox_new (0, 0);
gtk_widget_show (status_line);
gtk_box_pack_start (GTK_BOX (status_line), panel->current_dir, 1, 1, 0);
gtk_box_pack_end (GTK_BOX (status_line), filter, 0, 0, 0);
panel->status = statusbar = gtk_label_new ("");
gtk_widget_show (statusbar);
gtk_table_attach (GTK_TABLE (panel->table), panel->list, 0, 1, 1, 2,
GTK_EXPAND | GTK_FILL | GTK_SHRINK,
@ -1169,14 +1225,14 @@ x_create_panel (Dlg_head *h, widget_data parent, WPanel *panel)
gtk_table_attach (GTK_TABLE (panel->table), status_line, 0, 1, 0, 1,
GTK_EXPAND | GTK_FILL, GTK_SHRINK, 0, 0);
gtk_table_attach (GTK_TABLE (panel->table), panel->ministatus, 0, 1, 2, 3,
GTK_EXPAND | GTK_FILL,
gtk_table_attach (GTK_TABLE (panel->table), ministatus_align, 0, 1, 2, 3,
GTK_EXPAND | GTK_FILL | GTK_SHRINK,
0, 0, 0);
gtk_table_attach (GTK_TABLE (panel->table), statusbar, 0, 1, 3, 4,
GTK_EXPAND | GTK_FILL,
0, 0, 0);
gtk_widget_show (panel->table);
/* Ultra nasty hack: pull the vbox from wdata */
vbox = GTK_WIDGET (panel->widget.wdata);
@ -1185,7 +1241,9 @@ x_create_panel (Dlg_head *h, widget_data parent, WPanel *panel)
/* Now, insert our table in our parent */
gtk_container_add (GTK_CONTAINER (vbox), panel->table);
gtk_widget_show_all (panel->table);
if (!pixmaps_ready){
if (!GTK_WIDGET_REALIZED (panel->list))
gtk_widget_realize (panel->list);
@ -1196,6 +1254,7 @@ x_create_panel (Dlg_head *h, widget_data parent, WPanel *panel)
* filter input line
*/
panel->widget.options |= W_WANT_CURSOR;
panel->estimated_total = 0;
}
void

View File

@ -72,6 +72,7 @@ view_percent (WView *view, int p)
sprintf (buffer, "%3d%%", percent);
gtk_label_set (GTK_LABEL (view->gtk_percent), buffer);
}
void
@ -300,7 +301,7 @@ int
view (char *_command, char *_file, int *move_dir_p, int start_line)
{
Dlg_head *our_dlg;
GtkWidget *toplevel, *status;
GtkWidget *toplevel, *status, *scrollbar;
GtkVBox *vbox;
WView *wview;
int midnight_colors [4];
@ -327,6 +328,8 @@ view (char *_command, char *_file, int *move_dir_p, int start_line)
error = view_init (wview, _command, _file, start_line);
if (move_dir_p)
*move_dir_p = 0;
scrollbar = gtk_vscrollbar_new (sadj);
/* Please note that if you add another widget,
* you have to modify view_adjust_size to

1182
mc-aclocal.m4 Normal file

File diff suppressed because it is too large Load Diff

View File

@ -116,6 +116,8 @@ typedef struct {
void *filter_w;
void *status;
void *ministatus;
int estimated_total;
#endif
} WPanel;

View File

@ -507,16 +507,25 @@ format_file (char *dest, WPanel *panel, int file_index, int width, int attr, int
color = NORMAL_COLOR;
for (format = home; format; format = format->next){
if (format->string_fn){
int len;
if (empty_line)
txt = " ";
else
txt = (*format->string_fn)(fe, format->field_len);
old_pos = cdest;
cdest = to_buffer (cdest, format->just_mode, format->field_len, txt);
length += format->field_len;
#ifndef HAVE_X
len = format->field_len;
if (len + length > width)
len = width - length;
cdest = to_buffer (cdest, format->just_mode, len, txt);
length += len;
#ifdef HAVE_X
if (length == width)
break;
#else
/* What shall we do? Will we color each line according to
* the file type? Any suggestions to mc@timur.kazan.su
*/
@ -601,10 +610,10 @@ repaint_file (WPanel *panel, int file_index, int mv, int attr, int isstatus)
}
#endif
#ifndef PORT_HAS_DISPLAY_MINI_INFO
void
display_mini_info (WPanel *panel)
{
#ifndef HAVE_X
if (!show_mini_info)
return;
@ -659,8 +668,8 @@ display_mini_info (WPanel *panel)
/* Default behaviour */
repaint_file (panel, panel->selected, 0, STATUS, 1);
return;
#endif
}
#endif
#ifndef HAVE_X
void

View File

@ -97,6 +97,7 @@ typedef struct {
void *gtk_bytes; /* bytes */
void *gtk_flags; /* flags (growing) */
void *gtk_percent; /* percent */
void *sadj; /* scrollbar adjustment */
#endif
int move_dir; /* return value from widget:

View File

@ -11,6 +11,7 @@
#define PORT_HAS_PANEL_RESET_SORT_LABELS 1
#define PORT_HAS_DESTROY_CMD 1
#define PORT_HAS_RADIO_FOCUS_ITEM 1
#define PORT_HAS_DISPLAY_MINI_INFO 1
#define frontend_run_dlg(x) tkrundlg_event (x)

View File

@ -554,3 +554,9 @@ panel_update_cols (Widget *widget, int frame_size)
{
/* nothing */
}
void
display_mini_info (WPanel *panel)
{
/* FIXME: implement */
}