JUCE v8.0.9
JUCE API
 
Loading...
Searching...
No Matches
juce::detail Namespace Reference

Namespaces

namespace  withAdlSize
 

Classes

struct  AccessibilityHelpers
 
struct  AlertWindowHelpers
 
class  ButtonAccessibilityHandler
 
class  CallbackListenerList
 
struct  ComponentHelpers
 
struct  ComponentPeerHelpers
 
class  ConcreteScopedContentSharerImpl
 
class  ConcreteScopedMessageBoxImpl
 
struct  CustomMouseCursorInfo
 
struct  DynamicObjectWrapper
 
struct  FocusHelpers
 
struct  FocusRestorer
 
struct  GlyphAnchorResult
 
struct  GlyphLookupEntry
 
class  HostDrivenEventLoop
 
class  IntersectingRangedValues
 
struct  JSFunctionArguments
 
class  JustifiedText
 
struct  LineMetrics
 
struct  LookAndFeelHelpers
 
struct  MergeEqualItemsNo
 
struct  MergeEqualItemsYes
 
class  MessageThread
 
struct  MimeTypeTable
 
class  MouseInputSourceImpl
 
class  MouseInputSourceList
 
class  NativeModalWrapperComponent
 Sets up a native control to be hosted on top of a JUCE component. More...
 
struct  NumBase
 
struct  NumBase< dynamicExtent >
 
struct  PluginUtilities
 
class  PointerState
 
class  QuickJSWrapper
 
struct  RangedIterator
 
class  RangedIteratorWrapper
 
class  RangedValues
 
class  RangedValuesIterator
 
struct  RangedValuesIteratorItem
 
struct  Ranges
 
class  RunningInUnity
 
struct  ScalingHelpers
 
struct  ScopedContentSharerInterface
 
class  ScopedMessageBoxImpl
 
struct  ScopedMessageBoxInterface
 
struct  ShapedGlyph
 
class  ShapedText
 
class  ShapedTextOptions
 
class  SimpleShapedText
 
struct  StandardCachedComponentImage
 
class  TemporaryFilesDecorator
 
class  ToolbarItemDragAndDropOverlayComponent
 
class  TopLevelWindowManager
 
struct  UnicodeHelpers
 
struct  ViewportHelpers
 
struct  VSTWindowUtilities
 
struct  WebComboBoxRelayEvents
 
struct  WebSliderRelayEvents
 
struct  WebToggleButtonRelayEvents
 
struct  WindowingHelpers
 
class  WindowsHooks
 

Typedefs

using ColorPtr = CFUniquePtr< CGColorRef >
 
using ColorSpacePtr = CFUniquePtr< CGColorSpaceRef >
 
using ContextPtr = CFUniquePtr< CGContextRef >
 
using DataProviderPtr = CFUniquePtr< CGDataProviderRef >
 
using GetterFn = qjs::JSValue(*)(qjs::JSContext *ctx, qjs::JSValueConst thisVal, int magic)
 
using GradientPtr = CFUniquePtr< CGGradientRef >
 
using ImagePtr = CFUniquePtr< CGImageRef >
 
using MutablePathPtr = CFUniquePtr< CGMutablePathRef >
 
using NativeFileHandle = void *
 
using PathPtr = CFUniquePtr< CGPathRef >
 
using SetterFn = qjs::JSValue(*)(qjs::JSContext *ctx, qjs::JSValueConst thisVal, qjs::JSValueConst val, int magic)
 
using VarOrError = std::variant< var, String >
 

Enumerations

enum class  TextDirection {
  ltr ,
  rtl
}
 Types of text direction. More...
 

Functions

static qjs::JSClassID createClassId ()
 
static var discardError (VarOrError variant)
 
bool dispatchNextMessageOnSystemQueue (bool returnIfNoPendingMessages)
 
template<typename T >
static int64_t fromJuceInt64 (const T &convertible)
 
template<auto Fn, typename Result , typename Class , typename... Args>
constexpr auto generateCallbackImpl (Result(*)(JNIEnv *, Class &, Args...))
 
template<auto Fn, typename Result , typename Class , typename... Args>
constexpr auto generateCallbackImpl (Result(*)(JNIEnv *, const Class &, Args...))
 
static qjs::JSValue getOrCreateProperty (qjs::JSContext *ctx, qjs::JSValueConst object, const char *name)
 
std::optional< Range< int64 > > getRangeIntersectionWith (Range< int64 > r1, Range< int64 > r2)
 
static bool hasProperty (qjs::JSContext *ctx, qjs::JSValueConst object, const char *name)
 
template<typename... Ts>
constexpr bool isValueOrLvalueReferenceToConst ()
 
template<typename Iterator , typename Value >
auto iteratorWithAdvance (Iterator &&it, Value advance)
 
static qjs::JSValue juceToQuickJs (const var &v, qjs::JSContext *ctx)
 
static qjs::JSCFunctionListEntry makeFunctionListEntry (const char *name, GetterFn getter, SetterFn setter, int16_t magic)
 
template<typename... Iterables>
auto makeIntersectingRangedValues (Iterables *... iterables)
 
auto makeMouseEvent (MouseInputSource source, const PointerState &ps, ModifierKeys modifiers, Component *eventComponent, Component *originator, Time eventTime, Point< float > mouseDownPos, Time mouseDownTime, int numberOfClicks, bool mouseWasDragged)
 
template<typename Iterable >
auto makeRangedIteratorWrapper (Iterable *iterable)
 
static qjs::JSValue makeUndefined ()
 
template<size_t StartingAt, size_t NumElems, typename Tuple >
constexpr auto partiallyUnpack (Tuple &&tuple)
 
template<size_t StartingAt, typename Tuple , size_t... Is>
constexpr auto partiallyUnpackImpl (Tuple &&tuple, std::index_sequence< Is... >)
 
static VarOrError quickJSToJuce (const qjs::QuickJSContext::ValuePtr &ptr)
 
static std::vector< varquickJSToJuce (Span< qjs::JSValueConst > args, qjs::JSContext *ctx)
 
template<typename It >
constexpr auto toAddress (const It &it)
 
template<typename T >
constexpr T * toAddress (T *p)
 
template<typename T >
static int64_t toJuceInt64 (const T &convertible)
 
static uint32_t toUint32 (int64 value)
 
static JUCE_END_IGNORE_WARNINGS_GCC_LIKE var tryQuickJSToJuce (const qjs::QuickJSContext::ValuePtr &ptr, const qjs::JSValue *parent=nullptr)
 

Variables

template<typename T , typename I , typename = void>
constexpr auto canAdd = false
 
template<typename T , typename I , typename = void>
constexpr auto canAddAssign = false
 
template<typename T , typename I , typename = void>
constexpr auto canGreaterThan = false
 
template<typename T , typename I , typename = void>
constexpr auto canGreaterThanEqual = false
 
template<typename T , typename I , typename = void>
constexpr auto canLessThan = false
 
template<typename T , typename I , typename = void>
constexpr auto canLessThanEqual = false
 
template<typename T , typename = void>
constexpr auto canPreDecrement = false
 
template<typename T , typename I , typename = void>
constexpr auto canSub = false
 
template<typename T , typename I , typename = void>
constexpr auto canSubAssign = false
 
constexpr char colourPropertyPrefix [] = "jcclr_"
 
template<auto Fn, typename Result , typename Class , typename... Args>
constexpr auto generatedCallbackImpl
 
template<typename , typename = void>
constexpr auto hasDataAndSize = false
 
template<typename T , typename = void>
constexpr auto hasEqualityOperator = false
 
template<typename , typename = void>
constexpr auto hasToAddress = false
 

Typedef Documentation

◆ ColorPtr

using juce::detail::ColorPtr = typedef CFUniquePtr<CGColorRef>

◆ ColorSpacePtr

using juce::detail::ColorSpacePtr = typedef CFUniquePtr<CGColorSpaceRef>

◆ ContextPtr

using juce::detail::ContextPtr = typedef CFUniquePtr<CGContextRef>

◆ DataProviderPtr

using juce::detail::DataProviderPtr = typedef CFUniquePtr<CGDataProviderRef>

◆ GetterFn

using juce::detail::GetterFn = typedef qjs::JSValue (*) (qjs::JSContext* ctx, qjs::JSValueConst thisVal, int magic)

◆ GradientPtr

using juce::detail::GradientPtr = typedef CFUniquePtr<CGGradientRef>

◆ ImagePtr

using juce::detail::ImagePtr = typedef CFUniquePtr<CGImageRef>

◆ MutablePathPtr

using juce::detail::MutablePathPtr = typedef CFUniquePtr<CGMutablePathRef>

◆ NativeFileHandle

using juce::detail::NativeFileHandle = typedef void*

◆ PathPtr

using juce::detail::PathPtr = typedef CFUniquePtr<CGPathRef>

◆ SetterFn

using juce::detail::SetterFn = typedef qjs::JSValue (*) (qjs::JSContext* ctx, qjs::JSValueConst thisVal, qjs::JSValueConst val, int magic)

◆ VarOrError

using juce::detail::VarOrError = typedef std::variant<var, String>

Enumeration Type Documentation

◆ TextDirection

enum class juce::detail::TextDirection
strong

Types of text direction.

This may also be applied to characters.

Enumerator
ltr 
rtl 

Function Documentation

◆ createClassId()

static qjs::JSClassID juce::detail::createClassId ( )
static

◆ discardError()

static var juce::detail::discardError ( VarOrError  variant)
static

◆ dispatchNextMessageOnSystemQueue()

bool juce::detail::dispatchNextMessageOnSystemQueue ( bool  returnIfNoPendingMessages)

◆ fromJuceInt64()

template<typename T >
static int64_t juce::detail::fromJuceInt64 ( const T &  convertible)
static

◆ generateCallbackImpl() [1/2]

template<auto Fn, typename Result , typename Class , typename... Args>
constexpr auto juce::detail::generateCallbackImpl ( Result(*)(JNIEnv *, Class &, Args...)  )
constexprprivate

◆ generateCallbackImpl() [2/2]

template<auto Fn, typename Result , typename Class , typename... Args>
constexpr auto juce::detail::generateCallbackImpl ( Result(*)(JNIEnv *, const Class &, Args...)  )
constexprprivate

◆ getOrCreateProperty()

static qjs::JSValue juce::detail::getOrCreateProperty ( qjs::JSContext *  ctx,
qjs::JSValueConst  object,
const char *  name 
)
static

References hasProperty().

◆ getRangeIntersectionWith()

std::optional< Range< int64 > > juce::detail::getRangeIntersectionWith ( Range< int64 r1,
Range< int64 r2 
)
inline

◆ hasProperty()

static bool juce::detail::hasProperty ( qjs::JSContext *  ctx,
qjs::JSValueConst  object,
const char *  name 
)
static

Referenced by getOrCreateProperty().

◆ isValueOrLvalueReferenceToConst()

template<typename... Ts>
constexpr bool juce::detail::isValueOrLvalueReferenceToConst ( )
constexpr

◆ iteratorWithAdvance()

template<typename Iterator , typename Value >
auto juce::detail::iteratorWithAdvance ( Iterator &&  it,
Value  advance 
)

◆ juceToQuickJs()

◆ makeFunctionListEntry()

static qjs::JSCFunctionListEntry juce::detail::makeFunctionListEntry ( const char *  name,
GetterFn  getter,
SetterFn  setter,
int16_t  magic 
)
static

◆ makeIntersectingRangedValues()

template<typename... Iterables>
auto juce::detail::makeIntersectingRangedValues ( Iterables *...  iterables)

◆ makeMouseEvent()

auto juce::detail::makeMouseEvent ( MouseInputSource  source,
const PointerState ps,
ModifierKeys  modifiers,
Component eventComponent,
Component originator,
Time  eventTime,
Point< float mouseDownPos,
Time  mouseDownTime,
int  numberOfClicks,
bool  mouseWasDragged 
)
inline

◆ makeRangedIteratorWrapper()

template<typename Iterable >
auto juce::detail::makeRangedIteratorWrapper ( Iterable *  iterable)

◆ makeUndefined()

static qjs::JSValue juce::detail::makeUndefined ( )
static

◆ partiallyUnpack()

template<size_t StartingAt, size_t NumElems, typename Tuple >
constexpr auto juce::detail::partiallyUnpack ( Tuple &&  tuple)
constexpr

◆ partiallyUnpackImpl()

template<size_t StartingAt, typename Tuple , size_t... Is>
constexpr auto juce::detail::partiallyUnpackImpl ( Tuple &&  tuple,
std::index_sequence< Is... >   
)
constexpr

◆ quickJSToJuce() [1/2]

static VarOrError juce::detail::quickJSToJuce ( const qjs::QuickJSContext::ValuePtr &  ptr)
static

◆ quickJSToJuce() [2/2]

static std::vector< var > juce::detail::quickJSToJuce ( Span< qjs::JSValueConst >  args,
qjs::JSContext *  ctx 
)
static

◆ toAddress() [1/2]

template<typename It >
constexpr auto juce::detail::toAddress ( const It &  it)
constexpr

References toAddress().

◆ toAddress() [2/2]

template<typename T >
constexpr T * juce::detail::toAddress ( T *  p)
constexpr

Referenced by toAddress().

◆ toJuceInt64()

template<typename T >
static int64_t juce::detail::toJuceInt64 ( const T &  convertible)
static

◆ toUint32()

static uint32_t juce::detail::toUint32 ( int64  value)
static

References jassert.

◆ tryQuickJSToJuce()

static JUCE_END_IGNORE_WARNINGS_GCC_LIKE var juce::detail::tryQuickJSToJuce ( const qjs::QuickJSContext::ValuePtr &  ptr,
const qjs::JSValue *  parent = nullptr 
)
static

Variable Documentation

◆ canAdd

template<typename T , typename I , typename = void>
constexpr auto juce::detail::canAdd = false
constexpr

◆ canAddAssign

template<typename T , typename I , typename = void>
constexpr auto juce::detail::canAddAssign = false
constexpr

◆ canGreaterThan

template<typename T , typename I , typename = void>
constexpr auto juce::detail::canGreaterThan = false
constexpr

◆ canGreaterThanEqual

template<typename T , typename I , typename = void>
constexpr auto juce::detail::canGreaterThanEqual = false
constexpr

◆ canLessThan

template<typename T , typename I , typename = void>
constexpr auto juce::detail::canLessThan = false
constexpr

◆ canLessThanEqual

template<typename T , typename I , typename = void>
constexpr auto juce::detail::canLessThanEqual = false
constexpr

◆ canPreDecrement

template<typename T , typename = void>
constexpr auto juce::detail::canPreDecrement = false
constexpr

◆ canSub

template<typename T , typename I , typename = void>
constexpr auto juce::detail::canSub = false
constexpr

◆ canSubAssign

template<typename T , typename I , typename = void>
constexpr auto juce::detail::canSubAssign = false
constexpr

◆ colourPropertyPrefix

constexpr char juce::detail::colourPropertyPrefix[] = "jcclr_"
constexpr

◆ generatedCallbackImpl

template<auto Fn, typename Result , typename Class , typename... Args>
constexpr auto juce::detail::generatedCallbackImpl
inlineconstexprprivate
Initial value:
=
juce::toFnPtr (JNICALL [] (JNIEnv* env, jobject, jlong host, Args... args) -> Result
{
if (auto* object = reinterpret_cast<Class*> (host))
return Fn (env, *object, args...);
return {};
})
static constexpr auto toFnPtr(Functor functor)
Converts a captureless lambda to its equivalent function pointer type.
Definition juce_Functional.h:114

Referenced by generateCallbackImpl(), and generateCallbackImpl().

◆ hasDataAndSize

template<typename , typename = void>
constexpr auto juce::detail::hasDataAndSize = false
constexpr

◆ hasEqualityOperator

template<typename T , typename = void>
constexpr auto juce::detail::hasEqualityOperator = false
constexpr

◆ hasToAddress

template<typename , typename = void>
constexpr auto juce::detail::hasToAddress = false
constexpr