use crate::common::*;
use crate::AppKit::*;
use crate::CoreData::*;
use crate::Foundation::*;
ns_enum!(
#[underlying(NSUInteger)]
pub enum NSUsableScrollerParts {
NSNoScrollerParts = 0,
NSOnlyScrollerArrows = 1,
NSAllScrollerParts = 2,
}
);
ns_enum!(
#[underlying(NSUInteger)]
pub enum NSScrollerPart {
NSScrollerNoPart = 0,
NSScrollerDecrementPage = 1,
NSScrollerKnob = 2,
NSScrollerIncrementPage = 3,
NSScrollerDecrementLine = 4,
NSScrollerIncrementLine = 5,
NSScrollerKnobSlot = 6,
}
);
ns_enum!(
#[underlying(NSInteger)]
pub enum NSScrollerStyle {
NSScrollerStyleLegacy = 0,
NSScrollerStyleOverlay = 1,
}
);
ns_enum!(
#[underlying(NSInteger)]
pub enum NSScrollerKnobStyle {
NSScrollerKnobStyleDefault = 0,
NSScrollerKnobStyleDark = 1,
NSScrollerKnobStyleLight = 2,
}
);
extern_class!(
#[derive(Debug, PartialEq, Eq, Hash)]
pub struct NSScroller;
unsafe impl ClassType for NSScroller {
#[inherits(NSView, NSResponder, NSObject)]
type Super = NSControl;
}
);
extern_methods!(
unsafe impl NSScroller {
#[method(isCompatibleWithOverlayScrollers)]
pub unsafe fn isCompatibleWithOverlayScrollers() -> bool;
#[method(scrollerWidthForControlSize:scrollerStyle:)]
pub unsafe fn scrollerWidthForControlSize_scrollerStyle(
controlSize: NSControlSize,
scrollerStyle: NSScrollerStyle,
) -> CGFloat;
#[method(preferredScrollerStyle)]
pub unsafe fn preferredScrollerStyle() -> NSScrollerStyle;
#[method(scrollerStyle)]
pub unsafe fn scrollerStyle(&self) -> NSScrollerStyle;
#[method(setScrollerStyle:)]
pub unsafe fn setScrollerStyle(&self, scrollerStyle: NSScrollerStyle);
#[method(knobStyle)]
pub unsafe fn knobStyle(&self) -> NSScrollerKnobStyle;
#[method(setKnobStyle:)]
pub unsafe fn setKnobStyle(&self, knobStyle: NSScrollerKnobStyle);
#[method(rectForPart:)]
pub unsafe fn rectForPart(&self, partCode: NSScrollerPart) -> NSRect;
#[method(checkSpaceForParts)]
pub unsafe fn checkSpaceForParts(&self);
#[method(usableParts)]
pub unsafe fn usableParts(&self) -> NSUsableScrollerParts;
#[method(controlSize)]
pub unsafe fn controlSize(&self) -> NSControlSize;
#[method(setControlSize:)]
pub unsafe fn setControlSize(&self, controlSize: NSControlSize);
#[method(drawKnob)]
pub unsafe fn drawKnob(&self);
#[method(drawKnobSlotInRect:highlight:)]
pub unsafe fn drawKnobSlotInRect_highlight(&self, slotRect: NSRect, flag: bool);
#[method(testPart:)]
pub unsafe fn testPart(&self, point: NSPoint) -> NSScrollerPart;
#[method(trackKnob:)]
pub unsafe fn trackKnob(&self, event: &NSEvent);
#[method(hitPart)]
pub unsafe fn hitPart(&self) -> NSScrollerPart;
#[method(knobProportion)]
pub unsafe fn knobProportion(&self) -> CGFloat;
#[method(setKnobProportion:)]
pub unsafe fn setKnobProportion(&self, knobProportion: CGFloat);
}
);
extern_static!(NSPreferredScrollerStyleDidChangeNotification: &'static NSNotificationName);
ns_enum!(
#[underlying(NSUInteger)]
pub enum NSScrollArrowPosition {
NSScrollerArrowsMaxEnd = 0,
NSScrollerArrowsMinEnd = 1,
NSScrollerArrowsDefaultSetting = 0,
NSScrollerArrowsNone = 2,
}
);
ns_enum!(
#[underlying(NSUInteger)]
pub enum NSScrollerArrow {
NSScrollerIncrementArrow = 0,
NSScrollerDecrementArrow = 1,
}
);
extern_methods!(
unsafe impl NSScroller {
#[method(scrollerWidthForControlSize:)]
pub unsafe fn scrollerWidthForControlSize(controlSize: NSControlSize) -> CGFloat;
#[method(scrollerWidth)]
pub unsafe fn scrollerWidth() -> CGFloat;
#[method(setFloatValue:knobProportion:)]
pub unsafe fn setFloatValue_knobProportion(&self, value: c_float, proportion: CGFloat);
#[method(arrowsPosition)]
pub unsafe fn arrowsPosition(&self) -> NSScrollArrowPosition;
#[method(setArrowsPosition:)]
pub unsafe fn setArrowsPosition(&self, arrowsPosition: NSScrollArrowPosition);
#[method(controlTint)]
pub unsafe fn controlTint(&self) -> NSControlTint;
#[method(setControlTint:)]
pub unsafe fn setControlTint(&self, controlTint: NSControlTint);
#[method(highlight:)]
pub unsafe fn highlight(&self, flag: bool);
#[method(trackScrollButtons:)]
pub unsafe fn trackScrollButtons(&self, event: &NSEvent);
#[method(drawParts)]
pub unsafe fn drawParts(&self);
#[method(drawArrow:highlight:)]
pub unsafe fn drawArrow_highlight(&self, whichArrow: NSScrollerArrow, flag: bool);
}
);
extern_methods!(
unsafe impl NSScroller {
#[method_id(@__retain_semantics Init initWithFrame:)]
pub unsafe fn initWithFrame(
this: Option<Allocated<Self>>,
frameRect: NSRect,
) -> Id<Self, Shared>;
}
);