Ansel 0.0
A darktable fork - bloat + design vision
Loading...
Searching...
No Matches
thumbtable_internal.h File Reference

Private interface shared between the thumbtable engine (thumbtable.c) and its two frontends (filemanager.c, filmstrip.c). More...

#include "dtgtk/thumbtable.h"
#include "dtgtk/thumbnail.h"
#include <gtk/gtk.h>
#include <gdk/gdk.h>
+ Include dependency graph for thumbtable_internal.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  dt_thumbtable_layout_ops_t
 Per-mode layout strategy. One instance per frontend, shared (const) by all tables of that mode and stored on table->ops. Every method receives the table it operates on. More...
 

Macros

#define CLAMP_ROW(rowid)   CLAMP(rowid, 0, table->collection_count - 1)
 
#define IS_COLLECTION_EDGE(rowid)   (rowid < 0 || rowid >= table->collection_count)
 

Typedefs

typedef enum dt_thumbtable_direction_t dt_thumbtable_direction_t
 
typedef struct dt_thumbtable_layout_ops_t dt_thumbtable_layout_ops_t
 

Enumerations

enum  dt_thumbtable_direction_t {
  DT_TT_MOVE_UP ,
  DT_TT_MOVE_DOWN ,
  DT_TT_MOVE_LEFT ,
  DT_TT_MOVE_RIGHT ,
  DT_TT_MOVE_PREVIOUS_PAGE ,
  DT_TT_MOVE_NEXT_PAGE ,
  DT_TT_MOVE_START ,
  DT_TT_MOVE_END
}
 

Functions

const dt_thumbtable_layout_ops_tdt_thumbtable_grid_ops (void)
 
const dt_thumbtable_layout_ops_tdt_thumbtable_filmstrip_ops (void)
 
int dt_thumbtable_thumb_cell_decoration (void)
 
void dt_thumbtable_schedule_focus (dt_thumbtable_t *table, const gint priority)
 
int dt_thumbtable_find_rowid_from_imgid (dt_thumbtable_t *table, const int32_t imgid)
 
void dt_thumbtable_move_in_grid (dt_thumbtable_t *table, GdkEventKey *event, dt_thumbtable_direction_t direction, int origin_imgid)
 

Detailed Description

Private interface shared between the thumbtable engine (thumbtable.c) and its two frontends (filemanager.c, filmstrip.c).

The engine owns the collection LUT, the thumbnail hash, populate/resize, DnD, selection and signal wiring; every place where the old code branched on dt_thumbtable_mode_t is now a call through the dt_thumbtable_layout_ops_t vtable that each frontend provides.

This header is NOT part of the public API. Only the three thumbtable translation units include it; external callers keep using dtgtk/thumbtable.h.

Definition in file thumbtable_internal.h.

Macro Definition Documentation

◆ CLAMP_ROW

#define CLAMP_ROW (   rowid)    CLAMP(rowid, 0, table->collection_count - 1)

Definition at line 42 of file thumbtable_internal.h.

◆ IS_COLLECTION_EDGE

#define IS_COLLECTION_EDGE (   rowid)    (rowid < 0 || rowid >= table->collection_count)

Definition at line 43 of file thumbtable_internal.h.

Typedef Documentation

◆ dt_thumbtable_direction_t

◆ dt_thumbtable_layout_ops_t

Enumeration Type Documentation

◆ dt_thumbtable_direction_t

Enumerator
DT_TT_MOVE_UP 
DT_TT_MOVE_DOWN 
DT_TT_MOVE_LEFT 
DT_TT_MOVE_RIGHT 
DT_TT_MOVE_PREVIOUS_PAGE 
DT_TT_MOVE_NEXT_PAGE 
DT_TT_MOVE_START 
DT_TT_MOVE_END 

Definition at line 46 of file thumbtable_internal.h.

Function Documentation

◆ dt_thumbtable_filmstrip_ops()

◆ dt_thumbtable_find_rowid_from_imgid()

◆ dt_thumbtable_grid_ops()

◆ dt_thumbtable_move_in_grid()

◆ dt_thumbtable_schedule_focus()

void dt_thumbtable_schedule_focus ( dt_thumbtable_t table,
const gint  priority 
)

◆ dt_thumbtable_thumb_cell_decoration()

int dt_thumbtable_thumb_cell_decoration ( void  )

Definition at line 522 of file thumbtable.c.

References MAX.

Referenced by _filmstrip_configure_dims(), and _grid_configure_dims().