aboutsummaryrefslogblamecommitdiffstats
path: root/e-util/e-bit-array.h
blob: 7469413be3bdeb55c654c037222d9cad0e02798d (plain) (tree)

























































                                                                                             












                                                                   

                                                               




                            
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
#ifndef _E_BIT_ARRAY_H_
#define _E_BIT_ARRAY_H_

#include <gtk/gtkobject.h>

#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */

#define E_BIT_ARRAY_TYPE        (e_bit_array_get_type ())
#define E_BIT_ARRAY(o)          (GTK_CHECK_CAST ((o), E_BIT_ARRAY_TYPE, EBitArray))
#define E_BIT_ARRAY_CLASS(k)    (GTK_CHECK_CLASS_CAST((k), E_BIT_ARRAY_TYPE, EBitArrayClass))
#define E_IS_BIT_ARRAY(o)       (GTK_CHECK_TYPE ((o), E_BIT_ARRAY_TYPE))
#define E_IS_BIT_ARRAY_CLASS(k) (GTK_CHECK_CLASS_TYPE ((k), E_BIT_ARRAY_TYPE))

#ifndef _E_FOREACH_FUNC_H_
#define _E_FOREACH_FUNC_H_
typedef void (*EForeachFunc) (int model_row,
                  gpointer closure);
#endif

typedef struct {
    GtkObject base;

    gint bit_count;
        guint32 *data;
} EBitArray;

typedef struct {
    GtkObjectClass parent_class;
} EBitArrayClass;


GtkType    e_bit_array_get_type            (void);
EBitArray *e_bit_array_new                 (int           count);

gboolean   e_bit_array_value_at            (EBitArray    *selection,
                        gint          n);
void       e_bit_array_foreach             (EBitArray    *selection,
                        EForeachFunc  callback,
                        gpointer      closure);
void       e_bit_array_clear               (EBitArray    *selection);
gint       e_bit_array_selected_count      (EBitArray    *selection);
void       e_bit_array_select_all          (EBitArray    *selection);
void       e_bit_array_invert_selection    (EBitArray    *selection);
int        e_bit_array_bit_count           (EBitArray    *selection);
void       e_bit_array_change_one_row      (EBitArray    *selection,
                        int           row,
                        gboolean      grow);
void       e_bit_array_change_range        (EBitArray    *selection,
                        int           start,
                        int           end,
                        gboolean      grow);
void       e_bit_array_select_single_row   (EBitArray    *eba,
                        int           row);
void       e_bit_array_toggle_single_row   (EBitArray    *eba,
                        int           row);

void       e_bit_array_insert              (EBitArray    *esm,
                        int           row,
                        int           count);
void       e_bit_array_delete              (EBitArray    *esm,
                        int           row,
                        int           count);
void       e_bit_array_delete_single_mode  (EBitArray    *esm,
                        int           row,
                        int           count);
void       e_bit_array_move_row            (EBitArray    *esm,
                        int           old_row,
                        int           new_row);
gint       e_bit_array_bit_count           (EBitArray    *esm);

gboolean   e_bit_array_cross_and           (EBitArray    *esm);
gboolean   e_bit_array_cross_or            (EBitArray    *esm);

#ifdef __cplusplus
}
#endif /* __cplusplus */


#endif /* _E_BIT_ARRAY_H_ */
26-2/+3 * New port: cad/fritzingpi2016-02-018-0/+133 * Update to 3.3.68zeising2016-01-312-4/+3 * brickM is a toolpath generator for 3-axis CNC machining. It loadstrasz2016-01-306-0/+44 * Remove BROKEN_FreeBSD_8 from all remaining ports.rakuco2016-01-261-2/+0 * - Correct master_sites.stephen2016-01-201-1/+1 * - Update to 5.3.1.stephen2016-01-1812-55/+40 * - Update to 2.11.0.stephen2016-01-184-50/+6 * - Use modern OPTIONS framework.stephen2016-01-182-128/+59 * Update to version 3.12.5mr2016-01-143-6/+889 * cad/iverilog is not jobs safemarino2016-01-131-0/+2 * Convert LICENSE= "GPLxx # or later" to "GPLxx+"amdmi32016-01-139-9/+9 * Update to 2.9 and unbreak.maho2016-01-088-50/+338 * Add USES=pathfix support for CMake. Some ports that use CMake to buildjhale2016-01-071-2/+0 * Use LIB_DEPENDS for the quazip dependency.mr2015-12-311-3/+3 * Try to resolve conflict with archivers/quazip by disabling the internal one f...mr2015-12-303-12/+14 * Cleanup GH_* and variables order.mat2015-12-291-1/+0 * - Unbreak: port fetches fineamdmi32015-12-262-411/+7 * - Switch to options helpersamdmi32015-12-251-18/+10 * - Switch to USES=localbaseamdmi32015-12-251-5/+4 * - Switch to options helpersamdmi32015-12-251-6/+6 * - Clarify LICENSEamdmi32015-12-251-7/+9 * - Switch to options helpersamdmi32015-12-251-0/+2 * cad/sweethome3d: update 5.0 -> 5.1junovitch2015-12-223-7/+6 * mark some of the ports that don't build on powerpc64 for meswills2015-12-141-0/+2 * Update PyQt4 to 4.11.4, SIP to 4.17 and QScintilla2 to 2.9.1.rakuco2015-12-131-1/+1 * Mark as broken: unfetchablebapt2015-12-133-0/+6 * cad/ghdl: Upgrade version 0.32 => 0.33marino2015-12-074-39/+14 * - Chase library number changes from ports/r402502 applied to cad/vtk6.stephen2015-12-021-1/+6 * Try to fix compilation on FreeBSD-9 and HEAD.mr2015-12-013-1/+14 * Remove expired ports:rene2015-11-2955-3101/+0 * Update to 3.12.3mr2015-11-295-179/+3352 * - Mark broken.stephen2015-11-271-0/+2 * Update to r6329.mr2015-11-264-14/+174 * Update math/mpir to 2.7.2.rakuco2015-11-221-1/+1 * Simplify Makefile and use the right flags when building.rakuco2015-11-223-9/+33 * Upgrade to 6.9.1.thierry2015-11-094-370/+1605 * cad/gspiceui: update 1.0.00 -> 1.1.00robak2015-11-085-34/+76 * Update to r6284.mr2015-10-294-82/+38 * Deprecate ports broken for more than 6 monthsantoine2015-10-2612-0/+24 * Don't depend on doxygen if DOCS are not enabled.thierry2015-10-221-4/+3 * - Update to 9.7.93danilo2015-10-132-3/+3 * Fix build on FreeBSD 9.*zeising2015-10-091-0/+7 * Remove trailing whitespace from Makefiles, A-L.olgeni2015-10-082-2/+2 * Update to 10.0zeising2015-10-044-9/+27 * Typos, whitespace and capitalization fixes (A-F).olgeni2015-09-211-2/+2 * cad/meshdev: Support modern gcc by adding <cstring> headermarino2015-09-201-0/+10 * Update to r6201.mr2015-09-173-247/+255 * Remove ansi version fo wxGTK 2.8 and only keep the unicode versionbapt2015-09-172-2/+2 * Update the Qt4 ports to 4.8.7.rakuco2015-09-161-4/+4 * Make it so that the default Perl is always called perl5.mat2015-09-141-4/+4 * - Switch to options helpersamdmi32015-09-081-10/+5 * Update devel/tbb to 4.4.0 and bump dependent ports' revisionsmartymac2015-09-031-1/+1 * - Add USES=desktop-file-utils shared-mime-info as suggested by stage-qaamdmi32015-09-012-5/+12 * cad/librecad: add workaround to fix build with gccmakc2015-08-311-0/+3 * Drop USES=iconv.rakuco2015-08-311-2/+2 * - Bump PORTREVISION after libzip updatemakc2015-08-281-1/+1 * cad/librecad:makc2015-08-283-3/+1295 * - Split ghostscript into X11-independent and -dependent parts:hrs2015-08-231-1/+2 * - Fix build by fixing a typoamdmi32015-08-221-1/+3 * - Fix build by using correct flags for crippled configureamdmi32015-08-211-6/+6 * - Add NO_ARCHamdmi32015-08-201-0/+1 * Fix previous commit.mat2015-08-191-1/+0 * Convert ports to use the options helpers in categories [abc]*, and minor fixes.mat2015-08-1920-166/+71 * Reset maintainererwin2015-08-191-1/+1 * - Update to 5.0junovitch2015-08-062-4/+6 * cad/cura-engine: update 14.03 -> 15.04robak2015-08-053-6/+5 * Update to r6041.mr2015-08-033-4/+8 * Part 1 of adding USE_GNOME=intltool to ports that require it.kwm2015-08-032-1/+2 * - Fix shebangsamdmi32015-07-301-2/+4 * Convert code in bsd.port.mk for USE_GHOSTSCRIPT* to USES=ghostscript.kwm2015-07-171-2/+1 * Update to r5933.mr2015-07-144-13/+88 * cad/tkgate: Unbreak FreeBSD 11, Fix depends on restmarino2015-07-071-1/+2 * In April/May 2012, STEP Class Library was renamed to STEPcode. This was doneamdmi32015-07-035-0/+165 * Add USES=alias to 11 ports (non-invasive DragonFly support)marino2015-07-031-1/+2 * Use BROKEN helpersbapt2015-06-271-7/+3 * - Fix build by adding iconv dependencyvsevolod2015-06-241-1/+1 * Restore removed cad/tkgate.vsevolod2015-06-246-0/+1468 * Convert to USES=jpegantoine2015-06-234-9/+5 * cad/brickutils: drop dependency on py-xmlrm2015-06-221-4/+4 * Remove all @dirrm/@dirrmtrybapt2015-06-212-11/+4 * Remove build-plist target not needed anymore and still generating deprecatedbapt2015-06-211-25/+2 * Remove plist generator (we now have make makeplist and make check-plist)bapt2015-06-211-28/+0 * - Update to 9.06danilo2015-06-172-8/+7 * CLeanup USE_GITHUB usage.mat2015-06-161-3/+2 * cad/ghdl: Upgrade to latest (several fixes including jobs safety for llvm)marino2015-06-163-17/+6 * - Disable precompiled headers to fix build with old gcc on -current kernelamdmi32015-06-113-0/+15 * - Fix library installationamdmi32015-06-111-1/+2 * cad/ghdl: Support DragonFly - llvm back now jobs safemarino2015-06-033-4/+18 * cad/ghdl: Fix missing makeinfo on -CURRENT (caught by pkg-fallout)marino2015-06-021-1/+1 * - Update math/cgal to 4.6wen2015-06-011-1/+1 * cad/ghdl: Add option to use experimental LLVM backendmarino2015-06-013-19/+266 * Cleanup USE_GITHUB usage.mat2015-05-312-3/+3 * Add new port: cad/ghdlmarino2015-05-318-0/+710 * - Mark BROKEN on 8.x: absence of strtollamdmi32015-05-281-1/+7 * - Update to 4.6amdmi32015-05-275-14/+14 * - Don't cat pkg-message from Makefilesamdmi32015-05-27